tx · EvRXuV3JXK8EBGSpH1b6t7ZYeNw86ysRHi3Tfmw67t4L

3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb:  -0.02600000 Waves

2023.05.24 15:01 [3657508] smart account 3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb > SELF 0.00000000 Waves

{ "type": 13, "id": "EvRXuV3JXK8EBGSpH1b6t7ZYeNw86ysRHi3Tfmw67t4L", "fee": 2600000, "feeAssetId": null, "timestamp": 1684929708951, "version": 2, "chainId": 87, "sender": "3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb", "senderPublicKey": "7oGHxoQY2XDjJ5X2qcsdfRKCMLPiu3Wjzc7p8QVCr43B", "proofs": [ "5FGmKp2Q5UYYuTJ4cA5iE6XxW5fqt7epYsLy8T8cpBcwhzuDpd33HU6kNPqHxz8nmwuFxGo5WpgJSeBt8cSEUxNb", "5sKiamxnvUSThLC7fyS2JYWA5tHm2Ep8TC55zWXoDENqYqz5rirfTM6zjVaL5UAeM7nfoEjhzbmXsEYWLtVr2EHP" ], "script": "base64:BgI+CAISAwoBCBIICgYCAQEBCAESAwoBCBIDCgEIEgUKAwIIARIDCgEIEgQKAggIEgMKAQgSBAoCCAgSBAoCCAhDABBkZWxheUZvckhhdGNoaW5nAAIAD0hhdGNoaW5nU3RhcnRlZAIQQlJFRURJTkdfU1RBUlRFRAAQSGF0Y2hpbmdGaW5pc2hlZAIRQlJFRURJTkdfRklOSVNIRUQBFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5ARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwACFHN0YXRpY19vcmFjbGVBZGRyZXNzARpzdGF0aWNLZXlfaW5jdWJhdG9yQWRkcmVzcwACF3N0YXRpY19pbmN1YmF0b3JBZGRyZXNzARhzdGF0aWNLZXlfcmViaXJ0aEFkZHJlc3MAAhVzdGF0aWNfcmViaXJ0aEFkZHJlc3MBFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAhNzdGF0aWNfaXRlbXNBZGRyZXNzARRzdGF0aWNLZXlfZWdnQXNzZXRJZAACEXN0YXRpY19lZ2dBc3NldElkASFzdGF0aWNLZXlfYmFieUR1Y2tCcmVlZGluZ0FkZHJlc3MAAh5zdGF0aWNfYmFieUR1Y2tCcmVlZGluZ0FkZHJlc3MBF3N0YXRpY0tleV9kdWNrbGluZ1ByaWNlAAIUc3RhdGljX2R1Y2tsaW5nUHJpY2UBGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwACFXN0YXRpY19jb3Vwb25zQWRkcmVzcwEVc3RhdGljS2V5X2J1cm5BZGRyZXNzAAISc3RhdGljX2J1cm5BZGRyZXNzARxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAIZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwESc3RhdGljS2V5X2V4dHJhRmVlAAIPc3RhdGljX2V4dHJhRmVlARdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgACFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwEJARdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwABE2dldEluY3ViYXRvckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARpzdGF0aWNLZXlfaW5jdWJhdG9yQWRkcmVzcwABEWdldFJlYmlydGhBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAEPZ2V0SXRlbXNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwABDWdldEVnZ0Fzc2V0SWQACQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAARpnZXRCYWJ5RHVja0JyZWVkaW5nQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBIXN0YXRpY0tleV9iYWJ5RHVja0JyZWVkaW5nQWRkcmVzcwABEGdldER1Y2tsaW5nUHJpY2UACQEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgkBCWdldE9yYWNsZQAJARdzdGF0aWNLZXlfZHVja2xpbmdQcmljZQABEWdldENvdXBvbnNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAEOZ2V0QnVybkFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARVzdGF0aWNLZXlfYnVybkFkZHJlc3MAARVnZXRSZWZDb250cmFjdEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQAJARxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAEQZ2V0RmVlQWdncmVnYXRvcgAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAEHcGF5bWVudAMJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIZQkNBUDogUGxlYXNlIGF0dGFjaCB3YXZlcwQJZmVlQW1vdW50CQERQGV4dHJOYXRpdmUoMTA1MCkCCQEJZ2V0T3JhY2xlAAkBEnN0YXRpY0tleV9leHRyYUZlZQADCQECIT0CCAUHcGF5bWVudAZhbW91bnQFCWZlZUFtb3VudAkAAgEJAKwCAgkArAICAhxCQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQCkAwEFCWZlZUFtb3VudAITIGFtb3VudCBvZiB3YXZlbGV0cwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEQZ2V0RmVlQWdncmVnYXRvcgAFCWZlZUFtb3VudAUEdW5pdAUDbmlsAA1NYXhHZW5lcmF0aW9uAAcAC0dlbmVyYXRpb25zCQDMCAICAUcJAMwIAgIBSAkAzAgCAgFJCQDMCAICAUsJAMwIAgIBTAkAzAgCAgFNCQDMCAICAU4JAMwIAgIBTwUDbmlsARNnZXRQcm9jZXNzU3RhdHVzS2V5AgdhZGRyZXNzBHR4SWQJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAV8JANgEAQUEdHhJZAIHX3N0YXR1cwEOZ2V0RHVja2xpbmdLZXkCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAglfZHVja2xpbmcBGWdldFByb2Nlc3NGaW5pc2hIZWlnaHRLZXkCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgNfZmgBEGdldER1Y2tQYXJlbnRLZXkCBHR4SWQJcGFyZW50TnVtCQCsAgIJAKwCAgkArAICAgdpbml0dHhfCQDYBAEFBHR4SWQCB19wYXJlbnQJAKQDAQUJcGFyZW50TnVtAQxnZXREdWNrSWRLZXkCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgNfZGkBD2dldER1Y2tTdGF0c0tleQEJZ2VuU3RyaW5nCQCsAgIJAKwCAgIGc3RhdHNfBQlnZW5TdHJpbmcCB19hbW91bnQBDXRyeUdldEludGVnZXIBA2tleQQDdmFsBAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAUDdmFsARNkZXRlcm1pbmVHZW5lcmF0aW9uAgJnMQJnMgQGZ0luZGV4CQCWAwEJAMwIAgkBBXZhbHVlAQkAzwgCBQtHZW5lcmF0aW9ucwUCZzEJAMwIAgkBBXZhbHVlAQkAzwgCBQtHZW5lcmF0aW9ucwUCZzIFA25pbAkAkQMCBQtHZW5lcmF0aW9ucwkAZAIFBmdJbmRleAABAQ9nZXRSYW5kb21OdW1iZXIECHZhcmlhbnRzBHR4SWQUaGF0Y2hpbmdGaW5pc2hIZWlnaHQGb2Zmc2V0BA9yYW5kb21TZWVkQmxvY2sJAQV2YWx1ZQEJAO0HAQkAZQIFFGhhdGNoaW5nRmluaXNoSGVpZ2h0AAEECnJhbmRvbUhhc2gJANQWAQkAywECBQR0eElkCQEFdmFsdWUBCAUPcmFuZG9tU2VlZEJsb2NrA3ZyZgkAagIJALIJAgUKcmFuZG9tSGFzaAUGb2Zmc2V0BQh2YXJpYW50cwEMZ2V0UmFuZG9tR2VuCQRnZW4xBGdlbjIEc3RlcAR0eElkFGhhdGNoaW5nRmluaXNoSGVpZ2h0DmdlbmVGcm9tUGFyZW50C2dlbmVQb3N0aW9uDnNwZWNpZmlxdWVHZW5lFnNwZWNpZmlxdWVHZW5lUG9zaXRpb24DAwkBAiE9AgUOZ2VuZUZyb21QYXJlbnQAAAkAAAIFC2dlbmVQb3N0aW9uBQRzdGVwBwMJAAACBQ5nZW5lRnJvbVBhcmVudAABBQRnZW4xAwkAAAIFDmdlbmVGcm9tUGFyZW50AAIFBGdlbjIJAAIBAiBQYXJlbnQgZWl0aGVyIG5lZWRzIHRvIGJlIDEgb3IgMgMDCQECIT0CBQ5zcGVjaWZpcXVlR2VuZQIACQAAAgUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgUEc3RlcAcFDnNwZWNpZmlxdWVHZW5lBAlyYW5kb21OdW0JAQ9nZXRSYW5kb21OdW1iZXIEAAIFBHR4SWQFFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQRzdGVwBANnZW4DCQAAAgUJcmFuZG9tTnVtAAAFBGdlbjEFBGdlbjIFA2dlbgEVY2hlY2tBc3NldEluSW5jdWJhdG9yAQdhc3NldElkBAZyZXN1bHQEByRtYXRjaDAJAJ0IAgkBE2dldEluY3ViYXRvckFkZHJlc3MABQdhc3NldElkAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYgUHJG1hdGNoMAYHBAdyZXN1bHQyBAckbWF0Y2gwCQCdCAIFBHRoaXMFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFjBQckbWF0Y2gwBgcDBQZyZXN1bHQGBQdyZXN1bHQyAQxjYW5CZUJyZWVkZWQCCGFzc2V0MUlkCGFzc2V0MklkBAlhc3NldDFHZW4JALUJAggJAQV2YWx1ZQEJAOwHAQUIYXNzZXQxSWQEbmFtZQIABAlhc3NldDJHZW4JALUJAggJAQV2YWx1ZQEJAOwHAQUIYXNzZXQySWQEbmFtZQIAAwkAZwIJAQV2YWx1ZQEJAM8IAgULR2VuZXJhdGlvbnMJAJEDAgUJYXNzZXQxR2VuAA4FDU1heEdlbmVyYXRpb24JAKwCAgkArAICAil5b3UgY2FuIG9ubHkgYnJlZWQgZHVja3Mgd2l0aCBnZW5lcmF0aW9uIAkAkQMCBQtHZW5lcmF0aW9ucwUNTWF4R2VuZXJhdGlvbgIKIGFuZCBsb3dlcgMJAGcCCQEFdmFsdWUBCQDPCAIFC0dlbmVyYXRpb25zCQCRAwIFCWFzc2V0MkdlbgAOBQ1NYXhHZW5lcmF0aW9uCQCsAgIJAKwCAgIpeW91IGNhbiBvbmx5IGJyZWVkIGR1Y2tzIHdpdGggZ2VuZXJhdGlvbiAJAJEDAgULR2VuZXJhdGlvbnMFDU1heEdlbmVyYXRpb24CCiBhbmQgbG93ZXICBHRydWUBCWlzU3ltYm9sQQILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBQQkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEICC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUIJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xDAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFDCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sRAILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBRAkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEUCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUUJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xGAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFGCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sRwILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBRwkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEgCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUgJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xJAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFJCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sSwILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBSwkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEwCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUwJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xNAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFNCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sTgILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBTgkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbE8CC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAU8JAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xTAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFTCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sVAILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBVAkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAARBnZXRBbW91bnRPckNsZWFyAQZhbW91bnQDCQEIY29udGFpbnMCBQZhbW91bnQCATACAAUGYW1vdW50AQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwBQZzdHJpbmcJAAIBAhx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAhl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50ARJjb21wb3NlR2VuZXJpY0RhdGEEB2R1Y2tHZW4JZHVja0lkS2V5B2Fzc2V0SWQFYXNzZXQEB2Zhcm1HZW4JAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIOZ2V0R2VuRnJvbU5hbWUJAMwIAgUHZHVja0dlbgUDbmlsBQNuaWwDCQAAAgUHZmFybUdlbgUHZmFybUdlbgQGYW1vdW50CQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuBAhxdWFudGl0eQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkJAMwIAgkBC1N0cmluZ0VudHJ5AgUJZHVja0lkS2V5CQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkA2AQBBQdhc3NldElkBQlkdWNrSWRLZXkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuCQBkAgUGYW1vdW50AAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQkAZAIFCHF1YW50aXR5AAEJAMwIAgUFYXNzZXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEPZmluaXNoRHVja0hhdGNoAwd0eElkU3RyBW93bmVyD2R1Y2tHZW5lc1N0cmluZwQEdHhJZAkA2QQBBQd0eElkU3RyBBBwcm9jZXNzU3RhdHVzS2V5CQETZ2V0UHJvY2Vzc1N0YXR1c0tleQIFBW93bmVyBQR0eElkBAlkdWNrSWRLZXkJAQxnZXREdWNrSWRLZXkCBQVvd25lcgUEdHhJZAQPcHJvY2Vzc1R4U3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRBwcm9jZXNzU3RhdHVzS2V5BA9maW5pc2hIZWlnaHRLZXkJARlnZXRQcm9jZXNzRmluaXNoSGVpZ2h0S2V5AgUFb3duZXIFBHR4SWQEE3Byb2Nlc3NGaW5pc2hIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFD2ZpbmlzaEhlaWdodEtleQMJAAACBQ9wcm9jZXNzVHhTdGF0dXMFEEhhdGNoaW5nRmluaXNoZWQEBmR1Y2tJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkBDGdldER1Y2tJZEtleQIFBW93bmVyBQR0eElkCQACAQkArAICAkBUaGUgZHVjayB3YXMgYnJlZWRlZCBhbmQgY2xhaW1lZCBhbHJlYWR5LCBoZXJlIGlzIHRoZSBmb2xvd2luZzogBQZkdWNrSWQDCQBmAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAUGaGVpZ2h0CQACAQkArAICCQCsAgIJAKwCAgkArAICAh1CcmVlZGluZyBpcyBub3QgZmluaXNoZWQgeWV0IAkApAMBCQBlAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAUGaGVpZ2h0AicgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAKQDAQkAZQIFE3Byb2Nlc3NGaW5pc2hIZWlnaHQFBmhlaWdodAIIIG1pbnV0ZXMEB2R1Y2tHZW4DCQAAAgUPZHVja0dlbmVzU3RyaW5nAgAJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIMZ2VuZXJhdGVEdWNrCQDMCAIFBHR4SWQJAMwIAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAkAzAgCAAAJAMwIAgAACQDMCAICAAkAzAgCAAAFA25pbAUDbmlsBQ9kdWNrR2VuZXNTdHJpbmcDCQAAAgUHZHVja0dlbgUHZHVja0dlbgQLZGVzY3JpcHRpb24JAKwCAgkArAICAg57Imdlbm90eXBlIjogIgUHZHVja0dlbgIZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQFYXNzZXQJAMMIBwUHZHVja0dlbgULZGVzY3JpcHRpb24AAQAABwUEdW5pdAUTcHJvY2Vzc0ZpbmlzaEhlaWdodAQHYXNzZXRJZAkAuAgBBQVhc3NldAkAzggCCQESY29tcG9zZUdlbmVyaWNEYXRhBAUHZHVja0dlbgUJZHVja0lkS2V5BQdhc3NldElkBQVhc3NldAkAzAgCCQELU3RyaW5nRW50cnkCBRBwcm9jZXNzU3RhdHVzS2V5BRBIYXRjaGluZ0ZpbmlzaGVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBW93bmVyAAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEHZ2V0Qm9vbAEDa2V5BAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwEJaXNUZXN0RW52AAkBB2dldEJvb2wBAgdURVNURU5WCgFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCmFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBDGdlbmVyYXRlRHVjawYEdHhJZBRoYXRjaGluZ0ZpbmlzaEhlaWdodA5nZW5lRnJvbVBhcmVudAtnZW5lUG9zdGlvbg5zcGVjaWZpcXVlR2VuZRZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uBAtjb2xvclJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQABAUEdHhJZAUUaGF0Y2hpbmdGaW5pc2hIZWlnaHQACwQFY29sb3IDCQAAAgULY29sb3JSYW5kb20AAAIBWQMJAAACBQtjb2xvclJhbmRvbQABAgFHAwkAAAIFC2NvbG9yUmFuZG9tAAICAUICAVIECXBhcmVudDFJZAkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBEGdldER1Y2tQYXJlbnRLZXkCBQR0eElkAAEECXBhcmVudDJJZAkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBEGdldER1Y2tQYXJlbnRLZXkCBQR0eElkAAIECnBhcmVudDFHZW4JALUJAggJAQV2YWx1ZQEJAOwHAQUJcGFyZW50MUlkBG5hbWUCAAQKcGFyZW50MkdlbgkAtQkCCAkBBXZhbHVlAQkA7AcBBQlwYXJlbnQySWQEbmFtZQIABANnZW4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgVEVUNLLQkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAFCQCRAwIFCnBhcmVudDJHZW4ABQAABQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAGCQCRAwIFCnBhcmVudDJHZW4ABgABBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAHCQCRAwIFCnBhcmVudDJHZW4ABwACBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAICQCRAwIFCnBhcmVudDJHZW4ACAADBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAJCQCRAwIFCnBhcmVudDJHZW4ACQAEBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAKCQCRAwIFCnBhcmVudDJHZW4ACgAFBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgALCQCRAwIFCnBhcmVudDJHZW4ACwAGBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAMCQCRAwIFCnBhcmVudDJHZW4ADAAHBQR0eElkBRRoYXRj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CQCsAgICBmFzc2V0XwUHYXNzZXRJZAIJX2NoaWxkcmVuCQCUCgIFA25pbAUIY2hpbGRyZW4BaQEWY3JlYXRlRHVja1NwZWNpYWxHZW5lcwMHYWRkcmVzcwdkdWNrR2VuCGNoaWxkcmVuAwMJAQIhPQIIBQFpBmNhbGxlcgkBD2dldEl0ZW1zQWRkcmVzcwAJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwcJAAIBAhNhZG1pbiBvciBpdGVtcyBvbmx5BAR0eElkCAUBaQ10cmFuc2FjdGlvbklkBAtkZXNjcmlwdGlvbgkArAICCQCsAgICDnsiZ2Vub3R5cGUiOiAiBQdkdWNrR2VuAhkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAVhc3NldAkAwggFBQdkdWNrR2VuBQtkZXNjcmlwdGlvbgABAAAHBAdhc3NldElkCQC4CAEFBWFzc2V0BAlkdWNrSWRLZXkJAQxnZXREdWNrSWRLZXkCCQClCAEIBQFpBmNhbGxlcgUEdHhJZAQHZmFybUdlbgkBCGFzU3RyaW5nAQkA/AcEBQR0aGlzAg5nZXRHZW5Gcm9tTmFtZQkAzAgCBQdkdWNrR2VuBQNuaWwFA25pbAMJAAACBQdmYXJtR2VuBQdmYXJtR2VuCQDOCAIJARJjb21wb3NlR2VuZXJpY0RhdGEEBQdkdWNrR2VuBQlkdWNrSWRLZXkFB2Fzc2V0SWQFBWFzc2V0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGYXNzZXRfCQDYBAEFB2Fzc2V0SWQCCV9jaGlsZHJlbgUIY2hpbGRyZW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQdhZGRyZXNzAAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFzdGFydER1Y2tCcmVlZGluZwEOcmVmZXJlckFkZHJlc3MEDGZpcnN0UGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABA1zZWNvbmRQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAEEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQBCQCRAwIIBQFpCHBheW1lbnRzAAIDCQAAAgUMdmFsaWRQYXltZW50BQx2YWxpZFBheW1lbnQEDGZpcnN0QXNzZXRJZAkA2AQBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQEDXNlY29uZEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDXNlY29uZFBheW1lbnQHYXNzZXRJZAMDCQECIT0CCAUMZmlyc3RQYXltZW50BmFtb3VudAABBgkBAiE9AggFDXNlY29uZFBheW1lbnQGYW1vdW50AAEJAAIBAhNORlQgaXMgbm90IGF0dGFjaGVkBBNhbW91bnRQYWlkQnlDb3Vwb25zCQEFYXNJbnQBCQD8BwQJARFnZXRDb3Vwb25zQWRkcmVzcwACCnVzZUNvdXBvbnMJAMwIAgkBEGdldER1Y2tsaW5nUHJpY2UABQNuaWwFA25pbAMJAAACBRNhbW91bnRQYWlkQnlDb3Vwb25zBRNhbW91bnRQYWlkQnlDb3Vwb25zBAlsZWZ0VG9QYXkJAGUCCQEQZ2V0RHVja2xpbmdQcmljZQAFE2Ftb3VudFBhaWRCeUNvdXBvbnMEB3BheW1lbnQDCQECIT0CBQlsZWZ0VG9QYXkAAAQMdGhpcmRQYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAMDCQECIT0CCAUMdGhpcmRQYXltZW50B2Fzc2V0SWQJAQ1nZXRFZ2dBc3NldElkAAkAAgEJAKwCAgJCQlNEQjogWW91IGNhbiBhdHRhY2ggb25seSBFR0cgdG9rZW5zIHdpdGggdGhlIGZvbGxvd2luZyBhc3NldCBpZDogCQDYBAEJAQ1nZXRFZ2dBc3NldElkAAMJAQIhPQIIBQx0aGlyZFBheW1lbnQGYW1vdW50BQlsZWZ0VG9QYXkJAAIBCQCsAgICQ0JTREI6IFRvIGJyZWVkIHlvdSBjdXJyZW50bHkgbmVlZCB0aGUgZm9sbG93aW5nIGFtb3VudCBvZiBFR0dsZXRzOiAJAKQDAQUJbGVmdFRvUGF5BBVyZWZlcmVyUmV3YXJkRm9yUGVyY2gJAGsDBQlsZWZ0VG9QYXkABQBkBAdyZWZDYWxsCQD8BwQJARVnZXRSZWZDb250cmFjdEFkZHJlc3MAAgpyZWZQYXltZW50CQDMCAIFDnJlZmVyZXJBZGRyZXNzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRFZ2dBc3NldElkAAUVcmVmZXJlclJld2FyZEZvclBlcmNoBQNuaWwDCQAAAgUHcmVmQ2FsbAUHcmVmQ2FsbAQIYnVybkNhbGwJAPwHBAkBDmdldEJ1cm5BZGRyZXNzAAIUYnVybkF0dGFjaGVkUGF5bWVudHMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkBDWdldEVnZ0Fzc2V0SWQACQBlAgUJbGVmdFRvUGF5BRVyZWZlcmVyUmV3YXJkRm9yUGVyY2gFA25pbAMJAAACBQhidXJuQ2FsbAUIYnVybkNhbGwFCWxlZnRUb1BheQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAwkAAAIFB3BheW1lbnQFB3BheW1lbnQECWNoaWxkcmVuMQkBBWFzSW50AQkA/AcEBQR0aGlzAhZ2YWxpZGF0ZUFuZEdldENoaWxkcmVuCQDMCAIFDGZpcnN0QXNzZXRJZAUDbmlsBQNuaWwDCQAAAgUJY2hpbGRyZW4xBQljaGlsZHJlbjEECWNoaWxkcmVuMgkBBWFzSW50AQkA/AcEBQR0aGlzAhZ2YWxpZGF0ZUFuZEdldENoaWxkcmVuCQDMCAIFDXNlY29uZEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFCWNoaWxkcmVuMgUJY2hpbGRyZW4yAwMJAGYCBQljaGlsZHJlbjEAAAYJAGYCBQljaGlsZHJlbjIAAAkAAgECPE9uZSBkdWNrIGNhbiBiZSB1c2VkIGZvciBicmVlZGluZyBvbmx5IG9uY2UgaW4gaXRzIGxpZmV0aW1lLgQNYnJlZWRlZFN0YXR1cwkBDGNhbkJlQnJlZWRlZAIJANkEAQUMZmlyc3RBc3NldElkCQDZBAEFDXNlY29uZEFzc2V0SWQDCQECIT0CBQ1icmVlZGVkU3RhdHVzAgR0cnVlCQACAQkArAICAh9UaGVzZSBkdWNrcyBjYW5ub3QgYmUgYnJlZWRlZDogBQ1icmVlZGVkU3RhdHVzBApwYXJlbnQxR2VuCQC1CQIICQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZARuYW1lAgAECnBhcmVudDJHZW4JALUJAggJAQV2YWx1ZQEJAOwHAQkBBXZhbHVlAQgFDXNlY29uZFBheW1lbnQHYXNzZXRJZARuYW1lAgAEBG5ld0cJARNkZXRlcm1pbmVHZW5lcmF0aW9uAgkAkQMCBQpwYXJlbnQxR2VuAA4JAJEDAgUKcGFyZW50MkdlbgAOBAtzcGljZUFtb3VudAkAaAIJAGQCCQEFdmFsdWUBCQDPCAIFC0dlbmVyYXRpb25zBQRuZXdHAAEACgQLZHVja2xpbmdHZW4JAQhhc1N0cmluZwEJAPwHBAkBGmdldEJhYnlEdWNrQnJlZWRpbmdBZGRyZXNzAAINaXNzdWVEdWNrbGluZwkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJAMwIAgULc3BpY2VBbW91bnQJAMwIAgUEbmV3RwUDbmlsBQNuaWwDCQAAAgULZHVja2xpbmdHZW4FC2R1Y2tsaW5nR2VuCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEGdldER1Y2tQYXJlbnRLZXkCCAUBaQ10cmFuc2FjdGlvbklkAAEFDGZpcnN0QXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEQZ2V0RHVja1BhcmVudEtleQIIBQFpDXRyYW5zYWN0aW9uSWQAAgUNc2Vjb25kQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQETZ2V0UHJvY2Vzc1N0YXR1c0tleQIJAKUIAQgFAWkGY2FsbGVyCAUBaQ10cmFuc2FjdGlvbklkBQ9IYXRjaGluZ1N0YXJ0ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARlnZXRQcm9jZXNzRmluaXNoSGVpZ2h0S2V5AgkApQgBCAUBaQZjYWxsZXIIBQFpDXRyYW5zYWN0aW9uSWQJAGQCBQZoZWlnaHQFEGRlbGF5Rm9ySGF0Y2hpbmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDmdldER1Y2tsaW5nS2V5AgkApQgBCAUBaQZjYWxsZXIIBQFpDXRyYW5zYWN0aW9uSWQFC2R1Y2tsaW5nR2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGYXNzZXRfBQxmaXJzdEFzc2V0SWQCCV9jaGlsZHJlbgABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGYXNzZXRfBQ1zZWNvbmRBc3NldElkAglfY2hpbGRyZW4AAQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQEFdmFsdWUBCAUNc2Vjb25kUGF5bWVudAdhc3NldElkBQNuaWwFDHZhbGlkUGF5bWVudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdmaW5pc2hEdWNrSGF0Y2hpbmdJdGVtcwIHdHhJZFN0cg9kdWNrR2VuZXNTdHJpbmcDAwkBAiE9AggFAWkGY2FsbGVyCQEPZ2V0SXRlbXNBZGRyZXNzAAkBAiE9AgUPZHVja0dlbmVzU3RyaW5nAgAHCQACAQIhT25seSBpdGVtcyBjYW4gY3JlYXRlIGZpeGVkIGdlbmVzBAVvd25lcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEDmR1Y2tsaW5nRmluaXNoCQEIYXNTdHJpbmcBCQD8BwQJARpnZXRCYWJ5RHVja0JyZWVkaW5nQWRkcmVzcwACFHR1cm5EdWNrbGluZ0ludG9EdWNrBQNuaWwIBQFpCHBheW1lbnRzAwkAAAIFDmR1Y2tsaW5nRmluaXNoBQ5kdWNrbGluZ0ZpbmlzaAQOZHVja2xpbmdMaW5rZWQJAQx0cnlHZXRTdHJpbmcBCQEOZ2V0RHVja2xpbmdLZXkCBQVvd25lcgkA2QQBBQd0eElkU3RyAwkBAiE9AgUOZHVja2xpbmdMaW5rZWQFDmR1Y2tsaW5nRmluaXNoCQACAQIjUGxlYXNlIGF0dGFjaCB0aGUgY29ycmVjdCBkdWNrbGluZyEJAQ9maW5pc2hEdWNrSGF0Y2gDBQd0eElkU3RyBQVvd25lcgUPZHVja0dlbmVzU3RyaW5nCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmZpbmlzaER1Y2tIYXRjaGluZwEHdHhJZFN0cgQFb3duZXIJAKUIAQgFAWkGY2FsbGVyBA5kdWNrbGluZ0ZpbmlzaAkBCGFzU3RyaW5nAQkA/AcECQEaZ2V0QmFieUR1Y2tCcmVlZGluZ0FkZHJlc3MAAhR0dXJuRHVja2xpbmdJbnRvRHVjawUDbmlsCAUBaQhwYXltZW50cwMJAAACBQ5kdWNrbGluZ0ZpbmlzaAUOZHVja2xpbmdGaW5pc2gEDmR1Y2tsaW5nTGlua2VkCQEMdHJ5R2V0U3RyaW5nAQkBDmdldER1Y2tsaW5nS2V5AgUFb3duZXIJANkEAQUHdHhJZFN0cgMJAQIhPQIFDmR1Y2tsaW5nTGlua2VkBQ5kdWNrbGluZ0ZpbmlzaAkAAgECI1BsZWFzZSBhdHRhY2ggdGhlIGNvcnJlY3QgZHVja2xpbmchCQEPZmluaXNoRHVja0hhdGNoAwUHdHhJZFN0cgUFb3duZXICAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdmaW5pc2hEdWNrSGF0Y2hpbmdBZG1pbgIHdHhJZFN0cgVvd25lcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECH0JGREg6IE9ubHkgYWRtaW5zIGNhbiBydW4gdGhpcyEJAQ9maW5pc2hEdWNrSGF0Y2gDBQd0eElkU3RyBQVvd25lcgIAAWkBDHJlZHVjZVJhcml0eQIHYXNzZXRJZAdmYXJtR2VuBAVhc3NldAkA2QQBBQdhc3NldElkAwMDCQECIT0CCAUBaQZjYWxsZXIJAQ9nZXRJdGVtc0FkZHJlc3MACQECIT0CCAUBaQZjYWxsZXIJARFnZXRSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQIcYWRtaW4sIGl0ZW1zIG9yIHJlYmlydGggb25seQQHZHVja0dlbggJAQV2YWx1ZQEJAOwHAQUFYXNzZXQEbmFtZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4JAGUCCQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQkAZQIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBnN0YXRzXwUHZmFybUdlbgIJX3F1YW50aXR5AAEFA25pbAECdHgBBnZlcmlmeQADCQEJaXNUZXN0RW52AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQJZmlyc3RVc2VyASDe1sZR5FMW0GWA6wGaKgvQ95dR+hx2kX6bjgZDdxe9JQQKc2Vjb25kVXNlcgEgwWzfju3TjXOPi6L5+okP9HXNRBtUclKjtJzSVqQt4HUECXRoaXJkVXNlcgEg51v0jqrS+UmeboQmuPl+H9xnqH3cK7jU6nvN8mgKwSUED2ZpcnN0VXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQlmaXJzdFVzZXIAAQAABBBzZWNvbmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUKc2Vjb25kVXNlcgABAAAED3RoaXJkVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQl0aGlyZFVzZXIAAQAABA9zaWduYXR1cmVzQ291bnQJAGQCCQBkAgUPZmlyc3RVc2VyU2lnbmVkBRBzZWNvbmRVc2VyU2lnbmVkBQ90aGlyZFVzZXJTaWduZWQEByRtYXRjaDAFAnR4CQBnAgUPc2lnbmF0dXJlc0NvdW50AALKfUlR", "height": 3657508, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3S5hCouD8A8ENnSvFWDamPC2odRHQNNzXt2jZPNqcKE7 Next: 2pEN61BNxTwVWkxB8vUWnqzrw71iuSfK9mTzbK2zKpPX Diff:
OldNewDifferences
277277 else (aD + 0)
278278
279279
280-func aQ (aD,aE) = if ((aE == "S"))
280+func aQ (aD,aE) = if ((aE == "N"))
281281 then (aD + 1)
282282 else (aD + 0)
283283
284284
285-func aR (aD,aE) = if ((aE == "T"))
285+func aR (aD,aE) = if ((aE == "O"))
286286 then (aD + 1)
287287 else (aD + 0)
288288
289289
290-func aS (aT) = if (contains(aT, "0"))
291- then ""
292- else aT
290+func aS (aD,aE) = if ((aE == "S"))
291+ then (aD + 1)
292+ else (aD + 0)
293293
294294
295-func aU (aV) = {
296- let g = aV
295+func aT (aD,aE) = if ((aE == "T"))
296+ then (aD + 1)
297+ else (aD + 0)
298+
299+
300+func aU (aV) = if (contains(aV, "0"))
301+ then ""
302+ else aV
303+
304+
305+func aW (aX) = {
306+ let g = aX
297307 if ($isInstanceOf(g, "String"))
298308 then {
299- let aW = g
300- aW
309+ let aY = g
310+ aY
301311 }
302312 else throw("wrong type, expected: String")
303313 }
304314
305315
306-func aX (aV) = {
307- let g = aV
316+func aZ (aX) = {
317+ let g = aX
308318 if ($isInstanceOf(g, "Int"))
309319 then {
310- let aY = g
311- aY
320+ let ba = g
321+ ba
312322 }
313323 else throw("wrong type, expected: Int")
314324 }
315325
316326
317-func aZ (ba,bb,at,bc) = {
318- let bd = aU(invoke(this, "getGenFromName", [ba], nil))
319- if ((bd == bd))
327+func bb (bc,bd,at,be) = {
328+ let bf = aW(invoke(this, "getGenFromName", [bc], nil))
329+ if ((bf == bf))
320330 then {
321- let aT = W(U(ba))
322- let be = W((("stats_" + bd) + "_quantity"))
323-[StringEntry(bb, toBase58String(at)), StringEntry(toBase58String(at), bb), IntegerEntry(U(ba), (aT + 1)), IntegerEntry((("stats_" + bd) + "_quantity"), (be + 1)), bc]
331+ let aV = W(U(bc))
332+ let bg = W((("stats_" + bf) + "_quantity"))
333+[StringEntry(bd, toBase58String(at)), StringEntry(toBase58String(at), bd), IntegerEntry(U(bc), (aV + 1)), IntegerEntry((("stats_" + bf) + "_quantity"), (bg + 1)), be]
324334 }
325335 else throw("Strict value is not equal to itself.")
326336 }
327337
328338
329-func bf (bg,bh,bi) = {
330- let O = fromBase58String(bg)
331- let bj = N(bh, O)
332- let bb = T(bh, O)
333- let bk = getStringValue(this, bj)
334- let bl = Q(bh, O)
335- let bm = getIntegerValue(this, bl)
336- if ((bk == c))
339+func bh (bi,bj,bk) = {
340+ let O = fromBase58String(bi)
341+ let bl = N(bj, O)
342+ let bd = T(bj, O)
343+ let bm = getStringValue(this, bl)
344+ let bn = Q(bj, O)
345+ let bo = getIntegerValue(this, bn)
346+ if ((bm == c))
337347 then {
338- let bn = getStringValue(this, T(bh, O))
339- throw(("The duck was breeded and claimed already, here is the folowing: " + bn))
348+ let bp = getStringValue(this, T(bj, O))
349+ throw(("The duck was breeded and claimed already, here is the folowing: " + bp))
340350 }
341- else if ((bm > height))
342- then throw((((("Breeding is not finished yet " + toString((bm - height))) + " blocks remaining, it will take around ") + toString((bm - height))) + " minutes"))
351+ else if ((bo > height))
352+ then throw((((("Breeding is not finished yet " + toString((bo - height))) + " blocks remaining, it will take around ") + toString((bo - height))) + " minutes"))
343353 else {
344- let ba = if ((bi == ""))
345- then aU(invoke(this, "generateDuck", [O, bm, 0, 0, "", 0], nil))
346- else bi
347- if ((ba == ba))
354+ let bc = if ((bk == ""))
355+ then aW(invoke(this, "generateDuck", [O, bo, 0, 0, "", 0], nil))
356+ else bk
357+ if ((bc == bc))
348358 then {
349- let bo = (("{\"genotype\": \"" + ba) + "\", \"crossbreeding\": true}")
350- let bc = Issue(ba, bo, 1, 0, false, unit, bm)
351- let at = calculateAssetId(bc)
352- (aZ(ba, bb, at, bc) ++ [StringEntry(bj, c), ScriptTransfer(addressFromStringValue(bh), 1, at)])
359+ let bq = (("{\"genotype\": \"" + bc) + "\", \"crossbreeding\": true}")
360+ let be = Issue(bc, bq, 1, 0, false, unit, bo)
361+ let at = calculateAssetId(be)
362+ (bb(bc, bd, at, be) ++ [StringEntry(bl, c), ScriptTransfer(addressFromStringValue(bj), 1, at)])
353363 }
354364 else throw("Strict value is not equal to itself.")
355365 }
356366 }
357367
358368
359-func bp (f) = {
369+func br (f) = {
360370 let g = getBoolean(this, f)
361371 if ($isInstanceOf(g, "Boolean"))
362372 then {
367377 }
368378
369379
370-func bq () = bp("TESTENV")
380+func bs () = br("TESTENV")
371381
372382
373-@Callable(br)
374-func configureOracle (bs) = if ((br.caller != this))
383+@Callable(bt)
384+func configureOracle (bu) = if ((bt.caller != this))
375385 then throw("admin only")
376- else [StringEntry("static_oracleAddress", bs)]
386+ else [StringEntry("static_oracleAddress", bu)]
377387
378388
379389
380-@Callable(br)
390+@Callable(bt)
381391 func generateDuck (O,ae,am,an,ao,ap) = {
382- let bt = ac(4, O, ae, 11)
383- let bu = if ((bt == 0))
392+ let bv = ac(4, O, ae, 11)
393+ let bw = if ((bv == 0))
384394 then "Y"
385- else if ((bt == 1))
395+ else if ((bv == 1))
386396 then "G"
387- else if ((bt == 2))
397+ else if ((bv == 2))
388398 then "B"
389399 else "R"
390- let bv = fromBase58String(k(R(O, 1)))
391- let bw = fromBase58String(k(R(O, 2)))
392- let bx = split(value(assetInfo(bv)).name, "")
393- let by = split(value(assetInfo(bw)).name, "")
394- let ar = ((((((((((("DUCK-" + ai(bx[5], by[5], 0, O, ae, am, an, ao, ap)) + ai(bx[6], by[6], 1, O, ae, am, an, ao, ap)) + ai(bx[7], by[7], 2, O, ae, am, an, ao, ap)) + ai(bx[8], by[8], 3, O, ae, am, an, ao, ap)) + ai(bx[9], by[9], 4, O, ae, am, an, ao, ap)) + ai(bx[10], by[10], 5, O, ae, am, an, ao, ap)) + ai(bx[11], by[11], 6, O, ae, am, an, ao, ap)) + ai(bx[12], by[12], 7, O, ae, am, an, ao, ap)) + "-") + Y(bx[14], by[14])) + bu)
400+ let bx = fromBase58String(k(R(O, 1)))
401+ let by = fromBase58String(k(R(O, 2)))
402+ let bz = split(value(assetInfo(bx)).name, "")
403+ let bA = split(value(assetInfo(by)).name, "")
404+ let ar = ((((((((((("DUCK-" + ai(bz[5], bA[5], 0, O, ae, am, an, ao, ap)) + ai(bz[6], bA[6], 1, O, ae, am, an, ao, ap)) + ai(bz[7], bA[7], 2, O, ae, am, an, ao, ap)) + ai(bz[8], bA[8], 3, O, ae, am, an, ao, ap)) + ai(bz[9], bA[9], 4, O, ae, am, an, ao, ap)) + ai(bz[10], bA[10], 5, O, ae, am, an, ao, ap)) + ai(bz[11], bA[11], 6, O, ae, am, an, ao, ap)) + ai(bz[12], bA[12], 7, O, ae, am, an, ao, ap)) + "-") + Y(bz[14], bA[14])) + bw)
395405 $Tuple2(nil, ar)
396406 }
397407
398408
399409
400-@Callable(br)
401-func getGenFromName (bz) = {
402- let bA = split(dropRight(drop(bz, 5), 3), "")
403- let bB = split(bz, "")[14]
404- let ar = (((((((((((((((aS((toString({
405- let bC = bA
406- let bD = size(bC)
407- let bE = 0
408- func bF (bG,bH) = if ((bH >= bD))
409- then bG
410- else aC(bG, bC[bH])
410+@Callable(bt)
411+func getGenFromName (bB) = {
412+ let bC = split(dropRight(drop(bB, 5), 3), "")
413+ let bD = split(bB, "")[14]
414+ let ar = (((((((((((((((((aU((toString({
415+ let bE = bC
416+ let bF = size(bE)
417+ let bG = 0
418+ func bH (bI,bJ) = if ((bJ >= bF))
419+ then bI
420+ else aC(bI, bE[bJ])
411421
412- func bI (bG,bH) = if ((bH >= bD))
413- then bG
422+ func bK (bI,bJ) = if ((bJ >= bF))
423+ then bI
414424 else throw("List size exceeds 8")
415425
416- bI(bF(bF(bF(bF(bF(bF(bF(bF(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
417- }) + "A")) + aS((toString({
418- let bC = bA
419- let bD = size(bC)
420- let bE = 0
421- func bJ (bG,bH) = if ((bH >= bD))
422- then bG
423- else aF(bG, bC[bH])
426+ bK(bH(bH(bH(bH(bH(bH(bH(bH(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
427+ }) + "A")) + aU((toString({
428+ let bE = bC
429+ let bF = size(bE)
430+ let bG = 0
431+ func bL (bI,bJ) = if ((bJ >= bF))
432+ then bI
433+ else aF(bI, bE[bJ])
424434
425- func bK (bG,bH) = if ((bH >= bD))
426- then bG
435+ func bM (bI,bJ) = if ((bJ >= bF))
436+ then bI
427437 else throw("List size exceeds 8")
428438
429- bK(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
430- }) + "B"))) + aS((toString({
431- let bC = bA
432- let bD = size(bC)
433- let bE = 0
434- func bL (bG,bH) = if ((bH >= bD))
435- then bG
436- else aG(bG, bC[bH])
439+ bM(bL(bL(bL(bL(bL(bL(bL(bL(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
440+ }) + "B"))) + aU((toString({
441+ let bE = bC
442+ let bF = size(bE)
443+ let bG = 0
444+ func bN (bI,bJ) = if ((bJ >= bF))
445+ then bI
446+ else aG(bI, bE[bJ])
437447
438- func bM (bG,bH) = if ((bH >= bD))
439- then bG
448+ func bO (bI,bJ) = if ((bJ >= bF))
449+ then bI
440450 else throw("List size exceeds 8")
441451
442- bM(bL(bL(bL(bL(bL(bL(bL(bL(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
443- }) + "C"))) + aS((toString({
444- let bC = bA
445- let bD = size(bC)
446- let bE = 0
447- func bN (bG,bH) = if ((bH >= bD))
448- then bG
449- else aH(bG, bC[bH])
452+ bO(bN(bN(bN(bN(bN(bN(bN(bN(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
453+ }) + "C"))) + aU((toString({
454+ let bE = bC
455+ let bF = size(bE)
456+ let bG = 0
457+ func bP (bI,bJ) = if ((bJ >= bF))
458+ then bI
459+ else aH(bI, bE[bJ])
450460
451- func bO (bG,bH) = if ((bH >= bD))
452- then bG
461+ func bQ (bI,bJ) = if ((bJ >= bF))
462+ then bI
453463 else throw("List size exceeds 8")
454464
455- bO(bN(bN(bN(bN(bN(bN(bN(bN(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
456- }) + "D"))) + aS((toString({
457- let bC = bA
458- let bD = size(bC)
459- let bE = 0
460- func bP (bG,bH) = if ((bH >= bD))
461- then bG
462- else aI(bG, bC[bH])
465+ bQ(bP(bP(bP(bP(bP(bP(bP(bP(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
466+ }) + "D"))) + aU((toString({
467+ let bE = bC
468+ let bF = size(bE)
469+ let bG = 0
470+ func bR (bI,bJ) = if ((bJ >= bF))
471+ then bI
472+ else aI(bI, bE[bJ])
463473
464- func bQ (bG,bH) = if ((bH >= bD))
465- then bG
474+ func bS (bI,bJ) = if ((bJ >= bF))
475+ then bI
466476 else throw("List size exceeds 8")
467477
468- bQ(bP(bP(bP(bP(bP(bP(bP(bP(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
469- }) + "E"))) + aS((toString({
470- let bC = bA
471- let bD = size(bC)
472- let bE = 0
473- func bR (bG,bH) = if ((bH >= bD))
474- then bG
475- else aJ(bG, bC[bH])
478+ bS(bR(bR(bR(bR(bR(bR(bR(bR(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
479+ }) + "E"))) + aU((toString({
480+ let bE = bC
481+ let bF = size(bE)
482+ let bG = 0
483+ func bT (bI,bJ) = if ((bJ >= bF))
484+ then bI
485+ else aJ(bI, bE[bJ])
476486
477- func bS (bG,bH) = if ((bH >= bD))
478- then bG
487+ func bU (bI,bJ) = if ((bJ >= bF))
488+ then bI
479489 else throw("List size exceeds 8")
480490
481- bS(bR(bR(bR(bR(bR(bR(bR(bR(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
482- }) + "F"))) + aS((toString({
483- let bC = bA
484- let bD = size(bC)
485- let bE = 0
486- func bT (bG,bH) = if ((bH >= bD))
487- then bG
488- else aK(bG, bC[bH])
491+ bU(bT(bT(bT(bT(bT(bT(bT(bT(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
492+ }) + "F"))) + aU((toString({
493+ let bE = bC
494+ let bF = size(bE)
495+ let bG = 0
496+ func bV (bI,bJ) = if ((bJ >= bF))
497+ then bI
498+ else aK(bI, bE[bJ])
489499
490- func bU (bG,bH) = if ((bH >= bD))
491- then bG
500+ func bW (bI,bJ) = if ((bJ >= bF))
501+ then bI
492502 else throw("List size exceeds 8")
493503
494- bU(bT(bT(bT(bT(bT(bT(bT(bT(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
495- }) + "G"))) + aS((toString({
496- let bC = bA
497- let bD = size(bC)
498- let bE = 0
499- func bV (bG,bH) = if ((bH >= bD))
500- then bG
501- else aL(bG, bC[bH])
504+ bW(bV(bV(bV(bV(bV(bV(bV(bV(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
505+ }) + "G"))) + aU((toString({
506+ let bE = bC
507+ let bF = size(bE)
508+ let bG = 0
509+ func bX (bI,bJ) = if ((bJ >= bF))
510+ then bI
511+ else aL(bI, bE[bJ])
502512
503- func bW (bG,bH) = if ((bH >= bD))
504- then bG
513+ func bY (bI,bJ) = if ((bJ >= bF))
514+ then bI
505515 else throw("List size exceeds 8")
506516
507- bW(bV(bV(bV(bV(bV(bV(bV(bV(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
508- }) + "H"))) + aS((toString({
509- let bC = bA
510- let bD = size(bC)
511- let bE = 0
512- func bX (bG,bH) = if ((bH >= bD))
513- then bG
514- else aM(bG, bC[bH])
517+ bY(bX(bX(bX(bX(bX(bX(bX(bX(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
518+ }) + "H"))) + aU((toString({
519+ let bE = bC
520+ let bF = size(bE)
521+ let bG = 0
522+ func bZ (bI,bJ) = if ((bJ >= bF))
523+ then bI
524+ else aM(bI, bE[bJ])
515525
516- func bY (bG,bH) = if ((bH >= bD))
517- then bG
526+ func ca (bI,bJ) = if ((bJ >= bF))
527+ then bI
518528 else throw("List size exceeds 8")
519529
520- bY(bX(bX(bX(bX(bX(bX(bX(bX(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
521- }) + "I"))) + aS((toString({
522- let bC = bA
523- let bD = size(bC)
524- let bE = 0
525- func bZ (bG,bH) = if ((bH >= bD))
526- then bG
527- else aN(bG, bC[bH])
530+ ca(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
531+ }) + "I"))) + aU((toString({
532+ let bE = bC
533+ let bF = size(bE)
534+ let bG = 0
535+ func cb (bI,bJ) = if ((bJ >= bF))
536+ then bI
537+ else aN(bI, bE[bJ])
528538
529- func ca (bG,bH) = if ((bH >= bD))
530- then bG
539+ func cc (bI,bJ) = if ((bJ >= bF))
540+ then bI
531541 else throw("List size exceeds 8")
532542
533- ca(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
534- }) + "K"))) + aS((toString({
535- let bC = bA
536- let bD = size(bC)
537- let bE = 0
538- func cb (bG,bH) = if ((bH >= bD))
539- then bG
540- else aO(bG, bC[bH])
543+ cc(cb(cb(cb(cb(cb(cb(cb(cb(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
544+ }) + "K"))) + aU((toString({
545+ let bE = bC
546+ let bF = size(bE)
547+ let bG = 0
548+ func cd (bI,bJ) = if ((bJ >= bF))
549+ then bI
550+ else aO(bI, bE[bJ])
541551
542- func cc (bG,bH) = if ((bH >= bD))
543- then bG
552+ func ce (bI,bJ) = if ((bJ >= bF))
553+ then bI
544554 else throw("List size exceeds 8")
545555
546- cc(cb(cb(cb(cb(cb(cb(cb(cb(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
547- }) + "L"))) + aS((toString({
548- let bC = bA
549- let bD = size(bC)
550- let bE = 0
551- func cd (bG,bH) = if ((bH >= bD))
552- then bG
553- else aP(bG, bC[bH])
556+ ce(cd(cd(cd(cd(cd(cd(cd(cd(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
557+ }) + "L"))) + aU((toString({
558+ let bE = bC
559+ let bF = size(bE)
560+ let bG = 0
561+ func cf (bI,bJ) = if ((bJ >= bF))
562+ then bI
563+ else aP(bI, bE[bJ])
554564
555- func ce (bG,bH) = if ((bH >= bD))
556- then bG
565+ func cg (bI,bJ) = if ((bJ >= bF))
566+ then bI
557567 else throw("List size exceeds 8")
558568
559- ce(cd(cd(cd(cd(cd(cd(cd(cd(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
560- }) + "M"))) + aS((toString({
561- let bC = bA
562- let bD = size(bC)
563- let bE = 0
564- func cf (bG,bH) = if ((bH >= bD))
565- then bG
566- else aQ(bG, bC[bH])
569+ cg(cf(cf(cf(cf(cf(cf(cf(cf(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
570+ }) + "M"))) + aU((toString({
571+ let bE = bC
572+ let bF = size(bE)
573+ let bG = 0
574+ func ch (bI,bJ) = if ((bJ >= bF))
575+ then bI
576+ else aP(bI, bE[bJ])
567577
568- func cg (bG,bH) = if ((bH >= bD))
569- then bG
578+ func ci (bI,bJ) = if ((bJ >= bF))
579+ then bI
570580 else throw("List size exceeds 8")
571581
572- cg(cf(cf(cf(cf(cf(cf(cf(cf(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
573- }) + "S"))) + aS((toString({
574- let bC = bA
575- let bD = size(bC)
576- let bE = 0
577- func ch (bG,bH) = if ((bH >= bD))
578- then bG
579- else aR(bG, bC[bH])
582+ ci(ch(ch(ch(ch(ch(ch(ch(ch(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
583+ }) + "N"))) + aU((toString({
584+ let bE = bC
585+ let bF = size(bE)
586+ let bG = 0
587+ func cj (bI,bJ) = if ((bJ >= bF))
588+ then bI
589+ else aP(bI, bE[bJ])
580590
581- func ci (bG,bH) = if ((bH >= bD))
582- then bG
591+ func ck (bI,bJ) = if ((bJ >= bF))
592+ then bI
583593 else throw("List size exceeds 8")
584594
585- ci(ch(ch(ch(ch(ch(ch(ch(ch(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
586- }) + "T"))) + "-") + bB)
595+ ck(cj(cj(cj(cj(cj(cj(cj(cj(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
596+ }) + "O"))) + aU((toString({
597+ let bE = bC
598+ let bF = size(bE)
599+ let bG = 0
600+ func cl (bI,bJ) = if ((bJ >= bF))
601+ then bI
602+ else aS(bI, bE[bJ])
603+
604+ func cm (bI,bJ) = if ((bJ >= bF))
605+ then bI
606+ else throw("List size exceeds 8")
607+
608+ cm(cl(cl(cl(cl(cl(cl(cl(cl(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
609+ }) + "S"))) + aU((toString({
610+ let bE = bC
611+ let bF = size(bE)
612+ let bG = 0
613+ func cn (bI,bJ) = if ((bJ >= bF))
614+ then bI
615+ else aT(bI, bE[bJ])
616+
617+ func co (bI,bJ) = if ((bJ >= bF))
618+ then bI
619+ else throw("List size exceeds 8")
620+
621+ co(cn(cn(cn(cn(cn(cn(cn(cn(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
622+ }) + "T"))) + "-") + bD)
587623 $Tuple2(nil, ar)
588624 }
589625
590626
591627
592-@Callable(br)
628+@Callable(bt)
593629 func validateAndGetChildren (at) = if (!(as(at)))
594630 then throw((("You need to attach a valid NFT-duck. " + at) + " is invalid!"))
595631 else {
596- let cj = W((("asset_" + at) + "_children"))
597- $Tuple2(nil, cj)
632+ let cp = W((("asset_" + at) + "_children"))
633+ $Tuple2(nil, cp)
598634 }
599635
600636
601637
602-@Callable(br)
603-func createDuckSpecialGenes (e,ba,cj) = if (if ((br.caller != A()))
604- then (br.caller != this)
638+@Callable(bt)
639+func createDuckSpecialGenes (e,bc,cp) = if (if ((bt.caller != A()))
640+ then (bt.caller != this)
605641 else false)
606642 then throw("admin or items only")
607643 else {
608- let O = br.transactionId
609- let bo = (("{\"genotype\": \"" + ba) + "\", \"crossbreeding\": true}")
610- let bc = Issue(ba, bo, 1, 0, false)
611- let at = calculateAssetId(bc)
612- let bb = T(toString(br.caller), O)
613- let bd = aU(invoke(this, "getGenFromName", [ba], nil))
614- if ((bd == bd))
615- then (aZ(ba, bb, at, bc) ++ [IntegerEntry((("asset_" + toBase58String(at)) + "_children"), cj), ScriptTransfer(Address(e), 1, at)])
644+ let O = bt.transactionId
645+ let bq = (("{\"genotype\": \"" + bc) + "\", \"crossbreeding\": true}")
646+ let be = Issue(bc, bq, 1, 0, false)
647+ let at = calculateAssetId(be)
648+ let bd = T(toString(bt.caller), O)
649+ let bf = aW(invoke(this, "getGenFromName", [bc], nil))
650+ if ((bf == bf))
651+ then (bb(bc, bd, at, be) ++ [IntegerEntry((("asset_" + toBase58String(at)) + "_children"), cp), ScriptTransfer(Address(e), 1, at)])
616652 else throw("Strict value is not equal to itself.")
617653 }
618654
619655
620656
621-@Callable(br)
622-func startDuckBreeding (ck) = {
623- let cl = value(br.payments[0])
624- let cm = value(br.payments[1])
625- let cn = I(br.payments[2])
626- if ((cn == cn))
657+@Callable(bt)
658+func startDuckBreeding (cq) = {
659+ let cr = value(bt.payments[0])
660+ let cs = value(bt.payments[1])
661+ let ct = I(bt.payments[2])
662+ if ((ct == ct))
627663 then {
628- let co = toBase58String(value(cl.assetId))
629- let cp = toBase58String(value(cm.assetId))
630- if (if ((cl.amount != 1))
664+ let cu = toBase58String(value(cr.assetId))
665+ let cv = toBase58String(value(cs.assetId))
666+ if (if ((cr.amount != 1))
631667 then true
632- else (cm.amount != 1))
668+ else (cs.amount != 1))
633669 then throw("NFT is not attached")
634670 else {
635- let cq = aX(invoke(E(), "useCoupons", [D()], nil))
636- if ((cq == cq))
671+ let cw = aZ(invoke(E(), "useCoupons", [D()], nil))
672+ if ((cw == cw))
637673 then {
638- let cr = (D() - cq)
639- let J = if ((cr != 0))
674+ let cx = (D() - cw)
675+ let J = if ((cx != 0))
640676 then {
641- let cs = value(br.payments[3])
642- if ((cs.assetId != B()))
677+ let cy = value(bt.payments[3])
678+ if ((cy.assetId != B()))
643679 then throw(("BSDB: You can attach only EGG tokens with the following asset id: " + toBase58String(B())))
644- else if ((cs.amount != cr))
645- then throw(("BSDB: To breed you currently need the following amount of EGGlets: " + toString(cr)))
680+ else if ((cy.amount != cx))
681+ then throw(("BSDB: To breed you currently need the following amount of EGGlets: " + toString(cx)))
646682 else {
647- let ct = fraction(cr, 5, 100)
648- let cu = invoke(G(), "refPayment", [ck], [AttachedPayment(B(), ct)])
649- if ((cu == cu))
683+ let cz = fraction(cx, 5, 100)
684+ let cA = invoke(G(), "refPayment", [cq], [AttachedPayment(B(), cz)])
685+ if ((cA == cA))
650686 then {
651- let cv = invoke(F(), "burnAttachedPayments", nil, [AttachedPayment(B(), (cr - ct))])
652- if ((cv == cv))
653- then cr
687+ let cB = invoke(F(), "burnAttachedPayments", nil, [AttachedPayment(B(), (cx - cz))])
688+ if ((cB == cB))
689+ then cx
654690 else throw("Strict value is not equal to itself.")
655691 }
656692 else throw("Strict value is not equal to itself.")
659695 else 0
660696 if ((J == J))
661697 then {
662- let cw = aX(invoke(this, "validateAndGetChildren", [co], nil))
663- if ((cw == cw))
698+ let cC = aZ(invoke(this, "validateAndGetChildren", [cu], nil))
699+ if ((cC == cC))
664700 then {
665- let cx = aX(invoke(this, "validateAndGetChildren", [cp], nil))
666- if ((cx == cx))
667- then if (if ((cw > 0))
701+ let cD = aZ(invoke(this, "validateAndGetChildren", [cv], nil))
702+ if ((cD == cD))
703+ then if (if ((cC > 0))
668704 then true
669- else (cx > 0))
705+ else (cD > 0))
670706 then throw("One duck can be used for breeding only once in its lifetime.")
671707 else {
672- let cy = ax(fromBase58String(co), fromBase58String(cp))
673- if ((cy != "true"))
674- then throw(("These ducks cannot be breeded: " + cy))
708+ let cE = ax(fromBase58String(cu), fromBase58String(cv))
709+ if ((cE != "true"))
710+ then throw(("These ducks cannot be breeded: " + cE))
675711 else {
676- let bx = split(value(assetInfo(value(cl.assetId))).name, "")
677- let by = split(value(assetInfo(value(cm.assetId))).name, "")
678- let cz = Y(bx[14], by[14])
679- let cA = ((value(indexOf(M, cz)) + 1) * 10)
680- let cB = aU(invoke(C(), "issueDuckling", [toString(br.caller), toBase58String(br.transactionId), cA, cz], nil))
681- if ((cB == cB))
682- then ([StringEntry(R(br.transactionId, 1), co), StringEntry(R(br.transactionId, 2), cp), StringEntry(N(toString(br.caller), br.transactionId), b), IntegerEntry(Q(toString(br.caller), br.transactionId), (height + a)), StringEntry(P(toString(br.caller), br.transactionId), cB), IntegerEntry((("asset_" + co) + "_children"), 1), IntegerEntry((("asset_" + cp) + "_children"), 1), ScriptTransfer(br.caller, 1, value(cl.assetId)), ScriptTransfer(br.caller, 1, value(cm.assetId))] ++ cn)
712+ let bz = split(value(assetInfo(value(cr.assetId))).name, "")
713+ let bA = split(value(assetInfo(value(cs.assetId))).name, "")
714+ let cF = Y(bz[14], bA[14])
715+ let cG = ((value(indexOf(M, cF)) + 1) * 10)
716+ let cH = aW(invoke(C(), "issueDuckling", [toString(bt.caller), toBase58String(bt.transactionId), cG, cF], nil))
717+ if ((cH == cH))
718+ then ([StringEntry(R(bt.transactionId, 1), cu), StringEntry(R(bt.transactionId, 2), cv), StringEntry(N(toString(bt.caller), bt.transactionId), b), IntegerEntry(Q(toString(bt.caller), bt.transactionId), (height + a)), StringEntry(P(toString(bt.caller), bt.transactionId), cH), IntegerEntry((("asset_" + cu) + "_children"), 1), IntegerEntry((("asset_" + cv) + "_children"), 1), ScriptTransfer(bt.caller, 1, value(cr.assetId)), ScriptTransfer(bt.caller, 1, value(cs.assetId))] ++ ct)
683719 else throw("Strict value is not equal to itself.")
684720 }
685721 }
697733
698734
699735
700-@Callable(br)
701-func finishDuckHatchingItems (bg,bi) = if (if ((br.caller != A()))
702- then (bi != "")
736+@Callable(bt)
737+func finishDuckHatchingItems (bi,bk) = if (if ((bt.caller != A()))
738+ then (bk != "")
703739 else false)
704740 then throw("Only items can create fixed genes")
705741 else {
706- let bh = toString(br.originCaller)
707- let cC = aU(invoke(C(), "turnDucklingIntoDuck", nil, br.payments))
708- if ((cC == cC))
742+ let bj = toString(bt.originCaller)
743+ let cI = aW(invoke(C(), "turnDucklingIntoDuck", nil, bt.payments))
744+ if ((cI == cI))
709745 then {
710- let cD = k(P(bh, fromBase58String(bg)))
711- if ((cD != cC))
746+ let cJ = k(P(bj, fromBase58String(bi)))
747+ if ((cJ != cI))
712748 then throw("Please attach the correct duckling!")
713- else bf(bg, bh, bi)
749+ else bh(bi, bj, bk)
714750 }
715751 else throw("Strict value is not equal to itself.")
716752 }
717753
718754
719755
720-@Callable(br)
721-func finishDuckHatching (bg) = {
722- let bh = toString(br.caller)
723- let cC = aU(invoke(C(), "turnDucklingIntoDuck", nil, br.payments))
724- if ((cC == cC))
756+@Callable(bt)
757+func finishDuckHatching (bi) = {
758+ let bj = toString(bt.caller)
759+ let cI = aW(invoke(C(), "turnDucklingIntoDuck", nil, bt.payments))
760+ if ((cI == cI))
725761 then {
726- let cD = k(P(bh, fromBase58String(bg)))
727- if ((cD != cC))
762+ let cJ = k(P(bj, fromBase58String(bi)))
763+ if ((cJ != cI))
728764 then throw("Please attach the correct duckling!")
729- else bf(bg, bh, "")
765+ else bh(bi, bj, "")
730766 }
731767 else throw("Strict value is not equal to itself.")
732768 }
733769
734770
735771
736-@Callable(br)
737-func finishDuckHatchingAdmin (bg,bh) = if ((br.caller != this))
772+@Callable(bt)
773+func finishDuckHatchingAdmin (bi,bj) = if ((bt.caller != this))
738774 then throw("BFDH: Only admins can run this!")
739- else bf(bg, bh, "")
775+ else bh(bi, bj, "")
740776
741777
742778
743-@Callable(br)
744-func reduceRarity (at,bd) = {
745- let bc = fromBase58String(at)
746- if (if (if ((br.caller != A()))
747- then (br.caller != z())
779+@Callable(bt)
780+func reduceRarity (at,bf) = {
781+ let be = fromBase58String(at)
782+ if (if (if ((bt.caller != A()))
783+ then (bt.caller != z())
748784 else false)
749- then (br.caller != this)
785+ then (bt.caller != this)
750786 else false)
751787 then throw("admin, items or rebirth only")
752788 else {
753- let ba = value(assetInfo(bc)).name
754-[IntegerEntry(U(ba), (W(U(ba)) - 1)), IntegerEntry((("stats_" + bd) + "_quantity"), (W((("stats_" + bd) + "_quantity")) - 1))]
789+ let bc = value(assetInfo(be)).name
790+[IntegerEntry(U(bc), (W(U(bc)) - 1)), IntegerEntry((("stats_" + bf) + "_quantity"), (W((("stats_" + bf) + "_quantity")) - 1))]
755791 }
756792 }
757793
758794
759-@Verifier(cE)
760-func cF () = if (bq())
761- then sigVerify(cE.bodyBytes, cE.proofs[0], cE.senderPublicKey)
795+@Verifier(cK)
796+func cL () = if (bs())
797+ then sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
762798 else {
763- let cG = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
764- let cH = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
765- let cI = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
766- let cJ = if (sigVerify(cE.bodyBytes, cE.proofs[0], cG))
799+ let cM = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
800+ let cN = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
801+ let cO = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
802+ let cP = if (sigVerify(cK.bodyBytes, cK.proofs[0], cM))
767803 then 1
768- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cG))
804+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cM))
769805 then 1
770- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cG))
806+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cM))
771807 then 1
772808 else 0
773- let cK = if (sigVerify(cE.bodyBytes, cE.proofs[0], cH))
809+ let cQ = if (sigVerify(cK.bodyBytes, cK.proofs[0], cN))
774810 then 1
775- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cH))
811+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cN))
776812 then 1
777- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cH))
813+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cN))
778814 then 1
779815 else 0
780- let cL = if (sigVerify(cE.bodyBytes, cE.proofs[0], cI))
816+ let cR = if (sigVerify(cK.bodyBytes, cK.proofs[0], cO))
781817 then 1
782- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cI))
818+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cO))
783819 then 1
784- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cI))
820+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cO))
785821 then 1
786822 else 0
787- let cM = ((cJ + cK) + cL)
788- let g = cE
789- (cM >= 2)
823+ let cS = ((cP + cQ) + cR)
824+ let g = cK
825+ (cS >= 2)
790826 }
791827
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 2
55
66 let b = "BREEDING_STARTED"
77
88 let c = "BREEDING_FINISHED"
99
1010 func d (e,f) = {
1111 let g = getString(e, f)
1212 if ($isInstanceOf(g, "String"))
1313 then {
1414 let h = g
1515 h
1616 }
1717 else ""
1818 }
1919
2020
2121 func i (e,f) = {
2222 let g = getInteger(e, f)
2323 if ($isInstanceOf(g, "Int"))
2424 then {
2525 let j = g
2626 j
2727 }
2828 else 0
2929 }
3030
3131
3232 func k (f) = d(this, f)
3333
3434
3535 func l () = "static_oracleAddress"
3636
3737
3838 func m () = "static_incubatorAddress"
3939
4040
4141 func n () = "static_rebirthAddress"
4242
4343
4444 func o () = "static_itemsAddress"
4545
4646
4747 func p () = "static_eggAssetId"
4848
4949
5050 func q () = "static_babyDuckBreedingAddress"
5151
5252
5353 func r () = "static_ducklingPrice"
5454
5555
5656 func s () = "static_couponsAddress"
5757
5858
5959 func t () = "static_burnAddress"
6060
6161
6262 func u () = "static_refContractAddress"
6363
6464
6565 func v () = "static_extraFee"
6666
6767
6868 func w () = "static_feeAggregator"
6969
7070
7171 func x () = Address(fromBase58String(k(l())))
7272
7373
7474 func y () = Address(fromBase58String(d(x(), m())))
7575
7676
7777 func z () = Address(fromBase58String(d(x(), n())))
7878
7979
8080 func A () = Address(fromBase58String(d(x(), o())))
8181
8282
8383 func B () = fromBase58String(d(x(), p()))
8484
8585
8686 func C () = Address(fromBase58String(d(x(), q())))
8787
8888
8989 func D () = i(x(), r())
9090
9191
9292 func E () = Address(fromBase58String(d(x(), s())))
9393
9494
9595 func F () = Address(fromBase58String(d(x(), t())))
9696
9797
9898 func G () = Address(fromBase58String(d(x(), u())))
9999
100100
101101 func H () = Address(fromBase58String(d(x(), w())))
102102
103103
104104 func I (J) = if (isDefined(J.assetId))
105105 then throw("BCAP: Please attach waves")
106106 else {
107107 let K = getIntegerValue(x(), v())
108108 if ((J.amount != K))
109109 then throw((("BCAP: Please attach exactly " + toString(K)) + " amount of wavelets"))
110110 else [ScriptTransfer(H(), K, unit)]
111111 }
112112
113113
114114 let L = 7
115115
116116 let M = ["G", "H", "I", "K", "L", "M", "N", "O"]
117117
118118 func N (e,O) = (((e + "_") + toBase58String(O)) + "_status")
119119
120120
121121 func P (e,O) = (((e + "_") + toBase58String(O)) + "_duckling")
122122
123123
124124 func Q (e,O) = (((e + "_") + toBase58String(O)) + "_fh")
125125
126126
127127 func R (O,S) = ((("inittx_" + toBase58String(O)) + "_parent") + toString(S))
128128
129129
130130 func T (e,O) = (((e + "_") + toBase58String(O)) + "_di")
131131
132132
133133 func U (V) = (("stats_" + V) + "_amount")
134134
135135
136136 func W (f) = {
137137 let X = {
138138 let g = getInteger(this, f)
139139 if ($isInstanceOf(g, "Int"))
140140 then {
141141 let j = g
142142 j
143143 }
144144 else 0
145145 }
146146 X
147147 }
148148
149149
150150 func Y (Z,aa) = {
151151 let ab = max([value(indexOf(M, Z)), value(indexOf(M, aa))])
152152 M[(ab + 1)]
153153 }
154154
155155
156156 func ac (ad,O,ae,af) = {
157157 let ag = value(blockInfoByHeight((ae - 1)))
158158 let ah = sha256_16Kb((O + value(ag.vrf)))
159159 (toInt(ah, af) % ad)
160160 }
161161
162162
163163 func ai (aj,ak,al,O,ae,am,an,ao,ap) = if (if ((am != 0))
164164 then (an == al)
165165 else false)
166166 then if ((am == 1))
167167 then aj
168168 else if ((am == 2))
169169 then ak
170170 else throw("Parent either needs to be 1 or 2")
171171 else if (if ((ao != ""))
172172 then (ap == al)
173173 else false)
174174 then ao
175175 else {
176176 let aq = ac(2, O, ae, al)
177177 let ar = if ((aq == 0))
178178 then aj
179179 else ak
180180 ar
181181 }
182182
183183
184184 func as (at) = {
185185 let au = {
186186 let g = getString(y(), at)
187187 if ($isInstanceOf(g, "String"))
188188 then {
189189 let j = g
190190 true
191191 }
192192 else false
193193 }
194194 let av = {
195195 let g = getString(this, at)
196196 if ($isInstanceOf(g, "String"))
197197 then {
198198 let aw = g
199199 true
200200 }
201201 else false
202202 }
203203 if (au)
204204 then true
205205 else av
206206 }
207207
208208
209209 func ax (ay,az) = {
210210 let aA = split(value(assetInfo(ay)).name, "")
211211 let aB = split(value(assetInfo(az)).name, "")
212212 if ((value(indexOf(M, aA[14])) >= L))
213213 then (("you can only breed ducks with generation " + M[L]) + " and lower")
214214 else if ((value(indexOf(M, aB[14])) >= L))
215215 then (("you can only breed ducks with generation " + M[L]) + " and lower")
216216 else "true"
217217 }
218218
219219
220220 func aC (aD,aE) = if ((aE == "A"))
221221 then (aD + 1)
222222 else (aD + 0)
223223
224224
225225 func aF (aD,aE) = if ((aE == "B"))
226226 then (aD + 1)
227227 else (aD + 0)
228228
229229
230230 func aG (aD,aE) = if ((aE == "C"))
231231 then (aD + 1)
232232 else (aD + 0)
233233
234234
235235 func aH (aD,aE) = if ((aE == "D"))
236236 then (aD + 1)
237237 else (aD + 0)
238238
239239
240240 func aI (aD,aE) = if ((aE == "E"))
241241 then (aD + 1)
242242 else (aD + 0)
243243
244244
245245 func aJ (aD,aE) = if ((aE == "F"))
246246 then (aD + 1)
247247 else (aD + 0)
248248
249249
250250 func aK (aD,aE) = if ((aE == "G"))
251251 then (aD + 1)
252252 else (aD + 0)
253253
254254
255255 func aL (aD,aE) = if ((aE == "H"))
256256 then (aD + 1)
257257 else (aD + 0)
258258
259259
260260 func aM (aD,aE) = if ((aE == "I"))
261261 then (aD + 1)
262262 else (aD + 0)
263263
264264
265265 func aN (aD,aE) = if ((aE == "K"))
266266 then (aD + 1)
267267 else (aD + 0)
268268
269269
270270 func aO (aD,aE) = if ((aE == "L"))
271271 then (aD + 1)
272272 else (aD + 0)
273273
274274
275275 func aP (aD,aE) = if ((aE == "M"))
276276 then (aD + 1)
277277 else (aD + 0)
278278
279279
280-func aQ (aD,aE) = if ((aE == "S"))
280+func aQ (aD,aE) = if ((aE == "N"))
281281 then (aD + 1)
282282 else (aD + 0)
283283
284284
285-func aR (aD,aE) = if ((aE == "T"))
285+func aR (aD,aE) = if ((aE == "O"))
286286 then (aD + 1)
287287 else (aD + 0)
288288
289289
290-func aS (aT) = if (contains(aT, "0"))
291- then ""
292- else aT
290+func aS (aD,aE) = if ((aE == "S"))
291+ then (aD + 1)
292+ else (aD + 0)
293293
294294
295-func aU (aV) = {
296- let g = aV
295+func aT (aD,aE) = if ((aE == "T"))
296+ then (aD + 1)
297+ else (aD + 0)
298+
299+
300+func aU (aV) = if (contains(aV, "0"))
301+ then ""
302+ else aV
303+
304+
305+func aW (aX) = {
306+ let g = aX
297307 if ($isInstanceOf(g, "String"))
298308 then {
299- let aW = g
300- aW
309+ let aY = g
310+ aY
301311 }
302312 else throw("wrong type, expected: String")
303313 }
304314
305315
306-func aX (aV) = {
307- let g = aV
316+func aZ (aX) = {
317+ let g = aX
308318 if ($isInstanceOf(g, "Int"))
309319 then {
310- let aY = g
311- aY
320+ let ba = g
321+ ba
312322 }
313323 else throw("wrong type, expected: Int")
314324 }
315325
316326
317-func aZ (ba,bb,at,bc) = {
318- let bd = aU(invoke(this, "getGenFromName", [ba], nil))
319- if ((bd == bd))
327+func bb (bc,bd,at,be) = {
328+ let bf = aW(invoke(this, "getGenFromName", [bc], nil))
329+ if ((bf == bf))
320330 then {
321- let aT = W(U(ba))
322- let be = W((("stats_" + bd) + "_quantity"))
323-[StringEntry(bb, toBase58String(at)), StringEntry(toBase58String(at), bb), IntegerEntry(U(ba), (aT + 1)), IntegerEntry((("stats_" + bd) + "_quantity"), (be + 1)), bc]
331+ let aV = W(U(bc))
332+ let bg = W((("stats_" + bf) + "_quantity"))
333+[StringEntry(bd, toBase58String(at)), StringEntry(toBase58String(at), bd), IntegerEntry(U(bc), (aV + 1)), IntegerEntry((("stats_" + bf) + "_quantity"), (bg + 1)), be]
324334 }
325335 else throw("Strict value is not equal to itself.")
326336 }
327337
328338
329-func bf (bg,bh,bi) = {
330- let O = fromBase58String(bg)
331- let bj = N(bh, O)
332- let bb = T(bh, O)
333- let bk = getStringValue(this, bj)
334- let bl = Q(bh, O)
335- let bm = getIntegerValue(this, bl)
336- if ((bk == c))
339+func bh (bi,bj,bk) = {
340+ let O = fromBase58String(bi)
341+ let bl = N(bj, O)
342+ let bd = T(bj, O)
343+ let bm = getStringValue(this, bl)
344+ let bn = Q(bj, O)
345+ let bo = getIntegerValue(this, bn)
346+ if ((bm == c))
337347 then {
338- let bn = getStringValue(this, T(bh, O))
339- throw(("The duck was breeded and claimed already, here is the folowing: " + bn))
348+ let bp = getStringValue(this, T(bj, O))
349+ throw(("The duck was breeded and claimed already, here is the folowing: " + bp))
340350 }
341- else if ((bm > height))
342- then throw((((("Breeding is not finished yet " + toString((bm - height))) + " blocks remaining, it will take around ") + toString((bm - height))) + " minutes"))
351+ else if ((bo > height))
352+ then throw((((("Breeding is not finished yet " + toString((bo - height))) + " blocks remaining, it will take around ") + toString((bo - height))) + " minutes"))
343353 else {
344- let ba = if ((bi == ""))
345- then aU(invoke(this, "generateDuck", [O, bm, 0, 0, "", 0], nil))
346- else bi
347- if ((ba == ba))
354+ let bc = if ((bk == ""))
355+ then aW(invoke(this, "generateDuck", [O, bo, 0, 0, "", 0], nil))
356+ else bk
357+ if ((bc == bc))
348358 then {
349- let bo = (("{\"genotype\": \"" + ba) + "\", \"crossbreeding\": true}")
350- let bc = Issue(ba, bo, 1, 0, false, unit, bm)
351- let at = calculateAssetId(bc)
352- (aZ(ba, bb, at, bc) ++ [StringEntry(bj, c), ScriptTransfer(addressFromStringValue(bh), 1, at)])
359+ let bq = (("{\"genotype\": \"" + bc) + "\", \"crossbreeding\": true}")
360+ let be = Issue(bc, bq, 1, 0, false, unit, bo)
361+ let at = calculateAssetId(be)
362+ (bb(bc, bd, at, be) ++ [StringEntry(bl, c), ScriptTransfer(addressFromStringValue(bj), 1, at)])
353363 }
354364 else throw("Strict value is not equal to itself.")
355365 }
356366 }
357367
358368
359-func bp (f) = {
369+func br (f) = {
360370 let g = getBoolean(this, f)
361371 if ($isInstanceOf(g, "Boolean"))
362372 then {
363373 let j = g
364374 j
365375 }
366376 else false
367377 }
368378
369379
370-func bq () = bp("TESTENV")
380+func bs () = br("TESTENV")
371381
372382
373-@Callable(br)
374-func configureOracle (bs) = if ((br.caller != this))
383+@Callable(bt)
384+func configureOracle (bu) = if ((bt.caller != this))
375385 then throw("admin only")
376- else [StringEntry("static_oracleAddress", bs)]
386+ else [StringEntry("static_oracleAddress", bu)]
377387
378388
379389
380-@Callable(br)
390+@Callable(bt)
381391 func generateDuck (O,ae,am,an,ao,ap) = {
382- let bt = ac(4, O, ae, 11)
383- let bu = if ((bt == 0))
392+ let bv = ac(4, O, ae, 11)
393+ let bw = if ((bv == 0))
384394 then "Y"
385- else if ((bt == 1))
395+ else if ((bv == 1))
386396 then "G"
387- else if ((bt == 2))
397+ else if ((bv == 2))
388398 then "B"
389399 else "R"
390- let bv = fromBase58String(k(R(O, 1)))
391- let bw = fromBase58String(k(R(O, 2)))
392- let bx = split(value(assetInfo(bv)).name, "")
393- let by = split(value(assetInfo(bw)).name, "")
394- let ar = ((((((((((("DUCK-" + ai(bx[5], by[5], 0, O, ae, am, an, ao, ap)) + ai(bx[6], by[6], 1, O, ae, am, an, ao, ap)) + ai(bx[7], by[7], 2, O, ae, am, an, ao, ap)) + ai(bx[8], by[8], 3, O, ae, am, an, ao, ap)) + ai(bx[9], by[9], 4, O, ae, am, an, ao, ap)) + ai(bx[10], by[10], 5, O, ae, am, an, ao, ap)) + ai(bx[11], by[11], 6, O, ae, am, an, ao, ap)) + ai(bx[12], by[12], 7, O, ae, am, an, ao, ap)) + "-") + Y(bx[14], by[14])) + bu)
400+ let bx = fromBase58String(k(R(O, 1)))
401+ let by = fromBase58String(k(R(O, 2)))
402+ let bz = split(value(assetInfo(bx)).name, "")
403+ let bA = split(value(assetInfo(by)).name, "")
404+ let ar = ((((((((((("DUCK-" + ai(bz[5], bA[5], 0, O, ae, am, an, ao, ap)) + ai(bz[6], bA[6], 1, O, ae, am, an, ao, ap)) + ai(bz[7], bA[7], 2, O, ae, am, an, ao, ap)) + ai(bz[8], bA[8], 3, O, ae, am, an, ao, ap)) + ai(bz[9], bA[9], 4, O, ae, am, an, ao, ap)) + ai(bz[10], bA[10], 5, O, ae, am, an, ao, ap)) + ai(bz[11], bA[11], 6, O, ae, am, an, ao, ap)) + ai(bz[12], bA[12], 7, O, ae, am, an, ao, ap)) + "-") + Y(bz[14], bA[14])) + bw)
395405 $Tuple2(nil, ar)
396406 }
397407
398408
399409
400-@Callable(br)
401-func getGenFromName (bz) = {
402- let bA = split(dropRight(drop(bz, 5), 3), "")
403- let bB = split(bz, "")[14]
404- let ar = (((((((((((((((aS((toString({
405- let bC = bA
406- let bD = size(bC)
407- let bE = 0
408- func bF (bG,bH) = if ((bH >= bD))
409- then bG
410- else aC(bG, bC[bH])
410+@Callable(bt)
411+func getGenFromName (bB) = {
412+ let bC = split(dropRight(drop(bB, 5), 3), "")
413+ let bD = split(bB, "")[14]
414+ let ar = (((((((((((((((((aU((toString({
415+ let bE = bC
416+ let bF = size(bE)
417+ let bG = 0
418+ func bH (bI,bJ) = if ((bJ >= bF))
419+ then bI
420+ else aC(bI, bE[bJ])
411421
412- func bI (bG,bH) = if ((bH >= bD))
413- then bG
422+ func bK (bI,bJ) = if ((bJ >= bF))
423+ then bI
414424 else throw("List size exceeds 8")
415425
416- bI(bF(bF(bF(bF(bF(bF(bF(bF(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
417- }) + "A")) + aS((toString({
418- let bC = bA
419- let bD = size(bC)
420- let bE = 0
421- func bJ (bG,bH) = if ((bH >= bD))
422- then bG
423- else aF(bG, bC[bH])
426+ bK(bH(bH(bH(bH(bH(bH(bH(bH(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
427+ }) + "A")) + aU((toString({
428+ let bE = bC
429+ let bF = size(bE)
430+ let bG = 0
431+ func bL (bI,bJ) = if ((bJ >= bF))
432+ then bI
433+ else aF(bI, bE[bJ])
424434
425- func bK (bG,bH) = if ((bH >= bD))
426- then bG
435+ func bM (bI,bJ) = if ((bJ >= bF))
436+ then bI
427437 else throw("List size exceeds 8")
428438
429- bK(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
430- }) + "B"))) + aS((toString({
431- let bC = bA
432- let bD = size(bC)
433- let bE = 0
434- func bL (bG,bH) = if ((bH >= bD))
435- then bG
436- else aG(bG, bC[bH])
439+ bM(bL(bL(bL(bL(bL(bL(bL(bL(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
440+ }) + "B"))) + aU((toString({
441+ let bE = bC
442+ let bF = size(bE)
443+ let bG = 0
444+ func bN (bI,bJ) = if ((bJ >= bF))
445+ then bI
446+ else aG(bI, bE[bJ])
437447
438- func bM (bG,bH) = if ((bH >= bD))
439- then bG
448+ func bO (bI,bJ) = if ((bJ >= bF))
449+ then bI
440450 else throw("List size exceeds 8")
441451
442- bM(bL(bL(bL(bL(bL(bL(bL(bL(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
443- }) + "C"))) + aS((toString({
444- let bC = bA
445- let bD = size(bC)
446- let bE = 0
447- func bN (bG,bH) = if ((bH >= bD))
448- then bG
449- else aH(bG, bC[bH])
452+ bO(bN(bN(bN(bN(bN(bN(bN(bN(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
453+ }) + "C"))) + aU((toString({
454+ let bE = bC
455+ let bF = size(bE)
456+ let bG = 0
457+ func bP (bI,bJ) = if ((bJ >= bF))
458+ then bI
459+ else aH(bI, bE[bJ])
450460
451- func bO (bG,bH) = if ((bH >= bD))
452- then bG
461+ func bQ (bI,bJ) = if ((bJ >= bF))
462+ then bI
453463 else throw("List size exceeds 8")
454464
455- bO(bN(bN(bN(bN(bN(bN(bN(bN(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
456- }) + "D"))) + aS((toString({
457- let bC = bA
458- let bD = size(bC)
459- let bE = 0
460- func bP (bG,bH) = if ((bH >= bD))
461- then bG
462- else aI(bG, bC[bH])
465+ bQ(bP(bP(bP(bP(bP(bP(bP(bP(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
466+ }) + "D"))) + aU((toString({
467+ let bE = bC
468+ let bF = size(bE)
469+ let bG = 0
470+ func bR (bI,bJ) = if ((bJ >= bF))
471+ then bI
472+ else aI(bI, bE[bJ])
463473
464- func bQ (bG,bH) = if ((bH >= bD))
465- then bG
474+ func bS (bI,bJ) = if ((bJ >= bF))
475+ then bI
466476 else throw("List size exceeds 8")
467477
468- bQ(bP(bP(bP(bP(bP(bP(bP(bP(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
469- }) + "E"))) + aS((toString({
470- let bC = bA
471- let bD = size(bC)
472- let bE = 0
473- func bR (bG,bH) = if ((bH >= bD))
474- then bG
475- else aJ(bG, bC[bH])
478+ bS(bR(bR(bR(bR(bR(bR(bR(bR(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
479+ }) + "E"))) + aU((toString({
480+ let bE = bC
481+ let bF = size(bE)
482+ let bG = 0
483+ func bT (bI,bJ) = if ((bJ >= bF))
484+ then bI
485+ else aJ(bI, bE[bJ])
476486
477- func bS (bG,bH) = if ((bH >= bD))
478- then bG
487+ func bU (bI,bJ) = if ((bJ >= bF))
488+ then bI
479489 else throw("List size exceeds 8")
480490
481- bS(bR(bR(bR(bR(bR(bR(bR(bR(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
482- }) + "F"))) + aS((toString({
483- let bC = bA
484- let bD = size(bC)
485- let bE = 0
486- func bT (bG,bH) = if ((bH >= bD))
487- then bG
488- else aK(bG, bC[bH])
491+ bU(bT(bT(bT(bT(bT(bT(bT(bT(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
492+ }) + "F"))) + aU((toString({
493+ let bE = bC
494+ let bF = size(bE)
495+ let bG = 0
496+ func bV (bI,bJ) = if ((bJ >= bF))
497+ then bI
498+ else aK(bI, bE[bJ])
489499
490- func bU (bG,bH) = if ((bH >= bD))
491- then bG
500+ func bW (bI,bJ) = if ((bJ >= bF))
501+ then bI
492502 else throw("List size exceeds 8")
493503
494- bU(bT(bT(bT(bT(bT(bT(bT(bT(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
495- }) + "G"))) + aS((toString({
496- let bC = bA
497- let bD = size(bC)
498- let bE = 0
499- func bV (bG,bH) = if ((bH >= bD))
500- then bG
501- else aL(bG, bC[bH])
504+ bW(bV(bV(bV(bV(bV(bV(bV(bV(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
505+ }) + "G"))) + aU((toString({
506+ let bE = bC
507+ let bF = size(bE)
508+ let bG = 0
509+ func bX (bI,bJ) = if ((bJ >= bF))
510+ then bI
511+ else aL(bI, bE[bJ])
502512
503- func bW (bG,bH) = if ((bH >= bD))
504- then bG
513+ func bY (bI,bJ) = if ((bJ >= bF))
514+ then bI
505515 else throw("List size exceeds 8")
506516
507- bW(bV(bV(bV(bV(bV(bV(bV(bV(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
508- }) + "H"))) + aS((toString({
509- let bC = bA
510- let bD = size(bC)
511- let bE = 0
512- func bX (bG,bH) = if ((bH >= bD))
513- then bG
514- else aM(bG, bC[bH])
517+ bY(bX(bX(bX(bX(bX(bX(bX(bX(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
518+ }) + "H"))) + aU((toString({
519+ let bE = bC
520+ let bF = size(bE)
521+ let bG = 0
522+ func bZ (bI,bJ) = if ((bJ >= bF))
523+ then bI
524+ else aM(bI, bE[bJ])
515525
516- func bY (bG,bH) = if ((bH >= bD))
517- then bG
526+ func ca (bI,bJ) = if ((bJ >= bF))
527+ then bI
518528 else throw("List size exceeds 8")
519529
520- bY(bX(bX(bX(bX(bX(bX(bX(bX(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
521- }) + "I"))) + aS((toString({
522- let bC = bA
523- let bD = size(bC)
524- let bE = 0
525- func bZ (bG,bH) = if ((bH >= bD))
526- then bG
527- else aN(bG, bC[bH])
530+ ca(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
531+ }) + "I"))) + aU((toString({
532+ let bE = bC
533+ let bF = size(bE)
534+ let bG = 0
535+ func cb (bI,bJ) = if ((bJ >= bF))
536+ then bI
537+ else aN(bI, bE[bJ])
528538
529- func ca (bG,bH) = if ((bH >= bD))
530- then bG
539+ func cc (bI,bJ) = if ((bJ >= bF))
540+ then bI
531541 else throw("List size exceeds 8")
532542
533- ca(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bZ(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
534- }) + "K"))) + aS((toString({
535- let bC = bA
536- let bD = size(bC)
537- let bE = 0
538- func cb (bG,bH) = if ((bH >= bD))
539- then bG
540- else aO(bG, bC[bH])
543+ cc(cb(cb(cb(cb(cb(cb(cb(cb(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
544+ }) + "K"))) + aU((toString({
545+ let bE = bC
546+ let bF = size(bE)
547+ let bG = 0
548+ func cd (bI,bJ) = if ((bJ >= bF))
549+ then bI
550+ else aO(bI, bE[bJ])
541551
542- func cc (bG,bH) = if ((bH >= bD))
543- then bG
552+ func ce (bI,bJ) = if ((bJ >= bF))
553+ then bI
544554 else throw("List size exceeds 8")
545555
546- cc(cb(cb(cb(cb(cb(cb(cb(cb(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
547- }) + "L"))) + aS((toString({
548- let bC = bA
549- let bD = size(bC)
550- let bE = 0
551- func cd (bG,bH) = if ((bH >= bD))
552- then bG
553- else aP(bG, bC[bH])
556+ ce(cd(cd(cd(cd(cd(cd(cd(cd(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
557+ }) + "L"))) + aU((toString({
558+ let bE = bC
559+ let bF = size(bE)
560+ let bG = 0
561+ func cf (bI,bJ) = if ((bJ >= bF))
562+ then bI
563+ else aP(bI, bE[bJ])
554564
555- func ce (bG,bH) = if ((bH >= bD))
556- then bG
565+ func cg (bI,bJ) = if ((bJ >= bF))
566+ then bI
557567 else throw("List size exceeds 8")
558568
559- ce(cd(cd(cd(cd(cd(cd(cd(cd(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
560- }) + "M"))) + aS((toString({
561- let bC = bA
562- let bD = size(bC)
563- let bE = 0
564- func cf (bG,bH) = if ((bH >= bD))
565- then bG
566- else aQ(bG, bC[bH])
569+ cg(cf(cf(cf(cf(cf(cf(cf(cf(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
570+ }) + "M"))) + aU((toString({
571+ let bE = bC
572+ let bF = size(bE)
573+ let bG = 0
574+ func ch (bI,bJ) = if ((bJ >= bF))
575+ then bI
576+ else aP(bI, bE[bJ])
567577
568- func cg (bG,bH) = if ((bH >= bD))
569- then bG
578+ func ci (bI,bJ) = if ((bJ >= bF))
579+ then bI
570580 else throw("List size exceeds 8")
571581
572- cg(cf(cf(cf(cf(cf(cf(cf(cf(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
573- }) + "S"))) + aS((toString({
574- let bC = bA
575- let bD = size(bC)
576- let bE = 0
577- func ch (bG,bH) = if ((bH >= bD))
578- then bG
579- else aR(bG, bC[bH])
582+ ci(ch(ch(ch(ch(ch(ch(ch(ch(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
583+ }) + "N"))) + aU((toString({
584+ let bE = bC
585+ let bF = size(bE)
586+ let bG = 0
587+ func cj (bI,bJ) = if ((bJ >= bF))
588+ then bI
589+ else aP(bI, bE[bJ])
580590
581- func ci (bG,bH) = if ((bH >= bD))
582- then bG
591+ func ck (bI,bJ) = if ((bJ >= bF))
592+ then bI
583593 else throw("List size exceeds 8")
584594
585- ci(ch(ch(ch(ch(ch(ch(ch(ch(bE, 0), 1), 2), 3), 4), 5), 6), 7), 8)
586- }) + "T"))) + "-") + bB)
595+ ck(cj(cj(cj(cj(cj(cj(cj(cj(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
596+ }) + "O"))) + aU((toString({
597+ let bE = bC
598+ let bF = size(bE)
599+ let bG = 0
600+ func cl (bI,bJ) = if ((bJ >= bF))
601+ then bI
602+ else aS(bI, bE[bJ])
603+
604+ func cm (bI,bJ) = if ((bJ >= bF))
605+ then bI
606+ else throw("List size exceeds 8")
607+
608+ cm(cl(cl(cl(cl(cl(cl(cl(cl(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
609+ }) + "S"))) + aU((toString({
610+ let bE = bC
611+ let bF = size(bE)
612+ let bG = 0
613+ func cn (bI,bJ) = if ((bJ >= bF))
614+ then bI
615+ else aT(bI, bE[bJ])
616+
617+ func co (bI,bJ) = if ((bJ >= bF))
618+ then bI
619+ else throw("List size exceeds 8")
620+
621+ co(cn(cn(cn(cn(cn(cn(cn(cn(bG, 0), 1), 2), 3), 4), 5), 6), 7), 8)
622+ }) + "T"))) + "-") + bD)
587623 $Tuple2(nil, ar)
588624 }
589625
590626
591627
592-@Callable(br)
628+@Callable(bt)
593629 func validateAndGetChildren (at) = if (!(as(at)))
594630 then throw((("You need to attach a valid NFT-duck. " + at) + " is invalid!"))
595631 else {
596- let cj = W((("asset_" + at) + "_children"))
597- $Tuple2(nil, cj)
632+ let cp = W((("asset_" + at) + "_children"))
633+ $Tuple2(nil, cp)
598634 }
599635
600636
601637
602-@Callable(br)
603-func createDuckSpecialGenes (e,ba,cj) = if (if ((br.caller != A()))
604- then (br.caller != this)
638+@Callable(bt)
639+func createDuckSpecialGenes (e,bc,cp) = if (if ((bt.caller != A()))
640+ then (bt.caller != this)
605641 else false)
606642 then throw("admin or items only")
607643 else {
608- let O = br.transactionId
609- let bo = (("{\"genotype\": \"" + ba) + "\", \"crossbreeding\": true}")
610- let bc = Issue(ba, bo, 1, 0, false)
611- let at = calculateAssetId(bc)
612- let bb = T(toString(br.caller), O)
613- let bd = aU(invoke(this, "getGenFromName", [ba], nil))
614- if ((bd == bd))
615- then (aZ(ba, bb, at, bc) ++ [IntegerEntry((("asset_" + toBase58String(at)) + "_children"), cj), ScriptTransfer(Address(e), 1, at)])
644+ let O = bt.transactionId
645+ let bq = (("{\"genotype\": \"" + bc) + "\", \"crossbreeding\": true}")
646+ let be = Issue(bc, bq, 1, 0, false)
647+ let at = calculateAssetId(be)
648+ let bd = T(toString(bt.caller), O)
649+ let bf = aW(invoke(this, "getGenFromName", [bc], nil))
650+ if ((bf == bf))
651+ then (bb(bc, bd, at, be) ++ [IntegerEntry((("asset_" + toBase58String(at)) + "_children"), cp), ScriptTransfer(Address(e), 1, at)])
616652 else throw("Strict value is not equal to itself.")
617653 }
618654
619655
620656
621-@Callable(br)
622-func startDuckBreeding (ck) = {
623- let cl = value(br.payments[0])
624- let cm = value(br.payments[1])
625- let cn = I(br.payments[2])
626- if ((cn == cn))
657+@Callable(bt)
658+func startDuckBreeding (cq) = {
659+ let cr = value(bt.payments[0])
660+ let cs = value(bt.payments[1])
661+ let ct = I(bt.payments[2])
662+ if ((ct == ct))
627663 then {
628- let co = toBase58String(value(cl.assetId))
629- let cp = toBase58String(value(cm.assetId))
630- if (if ((cl.amount != 1))
664+ let cu = toBase58String(value(cr.assetId))
665+ let cv = toBase58String(value(cs.assetId))
666+ if (if ((cr.amount != 1))
631667 then true
632- else (cm.amount != 1))
668+ else (cs.amount != 1))
633669 then throw("NFT is not attached")
634670 else {
635- let cq = aX(invoke(E(), "useCoupons", [D()], nil))
636- if ((cq == cq))
671+ let cw = aZ(invoke(E(), "useCoupons", [D()], nil))
672+ if ((cw == cw))
637673 then {
638- let cr = (D() - cq)
639- let J = if ((cr != 0))
674+ let cx = (D() - cw)
675+ let J = if ((cx != 0))
640676 then {
641- let cs = value(br.payments[3])
642- if ((cs.assetId != B()))
677+ let cy = value(bt.payments[3])
678+ if ((cy.assetId != B()))
643679 then throw(("BSDB: You can attach only EGG tokens with the following asset id: " + toBase58String(B())))
644- else if ((cs.amount != cr))
645- then throw(("BSDB: To breed you currently need the following amount of EGGlets: " + toString(cr)))
680+ else if ((cy.amount != cx))
681+ then throw(("BSDB: To breed you currently need the following amount of EGGlets: " + toString(cx)))
646682 else {
647- let ct = fraction(cr, 5, 100)
648- let cu = invoke(G(), "refPayment", [ck], [AttachedPayment(B(), ct)])
649- if ((cu == cu))
683+ let cz = fraction(cx, 5, 100)
684+ let cA = invoke(G(), "refPayment", [cq], [AttachedPayment(B(), cz)])
685+ if ((cA == cA))
650686 then {
651- let cv = invoke(F(), "burnAttachedPayments", nil, [AttachedPayment(B(), (cr - ct))])
652- if ((cv == cv))
653- then cr
687+ let cB = invoke(F(), "burnAttachedPayments", nil, [AttachedPayment(B(), (cx - cz))])
688+ if ((cB == cB))
689+ then cx
654690 else throw("Strict value is not equal to itself.")
655691 }
656692 else throw("Strict value is not equal to itself.")
657693 }
658694 }
659695 else 0
660696 if ((J == J))
661697 then {
662- let cw = aX(invoke(this, "validateAndGetChildren", [co], nil))
663- if ((cw == cw))
698+ let cC = aZ(invoke(this, "validateAndGetChildren", [cu], nil))
699+ if ((cC == cC))
664700 then {
665- let cx = aX(invoke(this, "validateAndGetChildren", [cp], nil))
666- if ((cx == cx))
667- then if (if ((cw > 0))
701+ let cD = aZ(invoke(this, "validateAndGetChildren", [cv], nil))
702+ if ((cD == cD))
703+ then if (if ((cC > 0))
668704 then true
669- else (cx > 0))
705+ else (cD > 0))
670706 then throw("One duck can be used for breeding only once in its lifetime.")
671707 else {
672- let cy = ax(fromBase58String(co), fromBase58String(cp))
673- if ((cy != "true"))
674- then throw(("These ducks cannot be breeded: " + cy))
708+ let cE = ax(fromBase58String(cu), fromBase58String(cv))
709+ if ((cE != "true"))
710+ then throw(("These ducks cannot be breeded: " + cE))
675711 else {
676- let bx = split(value(assetInfo(value(cl.assetId))).name, "")
677- let by = split(value(assetInfo(value(cm.assetId))).name, "")
678- let cz = Y(bx[14], by[14])
679- let cA = ((value(indexOf(M, cz)) + 1) * 10)
680- let cB = aU(invoke(C(), "issueDuckling", [toString(br.caller), toBase58String(br.transactionId), cA, cz], nil))
681- if ((cB == cB))
682- then ([StringEntry(R(br.transactionId, 1), co), StringEntry(R(br.transactionId, 2), cp), StringEntry(N(toString(br.caller), br.transactionId), b), IntegerEntry(Q(toString(br.caller), br.transactionId), (height + a)), StringEntry(P(toString(br.caller), br.transactionId), cB), IntegerEntry((("asset_" + co) + "_children"), 1), IntegerEntry((("asset_" + cp) + "_children"), 1), ScriptTransfer(br.caller, 1, value(cl.assetId)), ScriptTransfer(br.caller, 1, value(cm.assetId))] ++ cn)
712+ let bz = split(value(assetInfo(value(cr.assetId))).name, "")
713+ let bA = split(value(assetInfo(value(cs.assetId))).name, "")
714+ let cF = Y(bz[14], bA[14])
715+ let cG = ((value(indexOf(M, cF)) + 1) * 10)
716+ let cH = aW(invoke(C(), "issueDuckling", [toString(bt.caller), toBase58String(bt.transactionId), cG, cF], nil))
717+ if ((cH == cH))
718+ then ([StringEntry(R(bt.transactionId, 1), cu), StringEntry(R(bt.transactionId, 2), cv), StringEntry(N(toString(bt.caller), bt.transactionId), b), IntegerEntry(Q(toString(bt.caller), bt.transactionId), (height + a)), StringEntry(P(toString(bt.caller), bt.transactionId), cH), IntegerEntry((("asset_" + cu) + "_children"), 1), IntegerEntry((("asset_" + cv) + "_children"), 1), ScriptTransfer(bt.caller, 1, value(cr.assetId)), ScriptTransfer(bt.caller, 1, value(cs.assetId))] ++ ct)
683719 else throw("Strict value is not equal to itself.")
684720 }
685721 }
686722 else throw("Strict value is not equal to itself.")
687723 }
688724 else throw("Strict value is not equal to itself.")
689725 }
690726 else throw("Strict value is not equal to itself.")
691727 }
692728 else throw("Strict value is not equal to itself.")
693729 }
694730 }
695731 else throw("Strict value is not equal to itself.")
696732 }
697733
698734
699735
700-@Callable(br)
701-func finishDuckHatchingItems (bg,bi) = if (if ((br.caller != A()))
702- then (bi != "")
736+@Callable(bt)
737+func finishDuckHatchingItems (bi,bk) = if (if ((bt.caller != A()))
738+ then (bk != "")
703739 else false)
704740 then throw("Only items can create fixed genes")
705741 else {
706- let bh = toString(br.originCaller)
707- let cC = aU(invoke(C(), "turnDucklingIntoDuck", nil, br.payments))
708- if ((cC == cC))
742+ let bj = toString(bt.originCaller)
743+ let cI = aW(invoke(C(), "turnDucklingIntoDuck", nil, bt.payments))
744+ if ((cI == cI))
709745 then {
710- let cD = k(P(bh, fromBase58String(bg)))
711- if ((cD != cC))
746+ let cJ = k(P(bj, fromBase58String(bi)))
747+ if ((cJ != cI))
712748 then throw("Please attach the correct duckling!")
713- else bf(bg, bh, bi)
749+ else bh(bi, bj, bk)
714750 }
715751 else throw("Strict value is not equal to itself.")
716752 }
717753
718754
719755
720-@Callable(br)
721-func finishDuckHatching (bg) = {
722- let bh = toString(br.caller)
723- let cC = aU(invoke(C(), "turnDucklingIntoDuck", nil, br.payments))
724- if ((cC == cC))
756+@Callable(bt)
757+func finishDuckHatching (bi) = {
758+ let bj = toString(bt.caller)
759+ let cI = aW(invoke(C(), "turnDucklingIntoDuck", nil, bt.payments))
760+ if ((cI == cI))
725761 then {
726- let cD = k(P(bh, fromBase58String(bg)))
727- if ((cD != cC))
762+ let cJ = k(P(bj, fromBase58String(bi)))
763+ if ((cJ != cI))
728764 then throw("Please attach the correct duckling!")
729- else bf(bg, bh, "")
765+ else bh(bi, bj, "")
730766 }
731767 else throw("Strict value is not equal to itself.")
732768 }
733769
734770
735771
736-@Callable(br)
737-func finishDuckHatchingAdmin (bg,bh) = if ((br.caller != this))
772+@Callable(bt)
773+func finishDuckHatchingAdmin (bi,bj) = if ((bt.caller != this))
738774 then throw("BFDH: Only admins can run this!")
739- else bf(bg, bh, "")
775+ else bh(bi, bj, "")
740776
741777
742778
743-@Callable(br)
744-func reduceRarity (at,bd) = {
745- let bc = fromBase58String(at)
746- if (if (if ((br.caller != A()))
747- then (br.caller != z())
779+@Callable(bt)
780+func reduceRarity (at,bf) = {
781+ let be = fromBase58String(at)
782+ if (if (if ((bt.caller != A()))
783+ then (bt.caller != z())
748784 else false)
749- then (br.caller != this)
785+ then (bt.caller != this)
750786 else false)
751787 then throw("admin, items or rebirth only")
752788 else {
753- let ba = value(assetInfo(bc)).name
754-[IntegerEntry(U(ba), (W(U(ba)) - 1)), IntegerEntry((("stats_" + bd) + "_quantity"), (W((("stats_" + bd) + "_quantity")) - 1))]
789+ let bc = value(assetInfo(be)).name
790+[IntegerEntry(U(bc), (W(U(bc)) - 1)), IntegerEntry((("stats_" + bf) + "_quantity"), (W((("stats_" + bf) + "_quantity")) - 1))]
755791 }
756792 }
757793
758794
759-@Verifier(cE)
760-func cF () = if (bq())
761- then sigVerify(cE.bodyBytes, cE.proofs[0], cE.senderPublicKey)
795+@Verifier(cK)
796+func cL () = if (bs())
797+ then sigVerify(cK.bodyBytes, cK.proofs[0], cK.senderPublicKey)
762798 else {
763- let cG = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
764- let cH = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
765- let cI = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
766- let cJ = if (sigVerify(cE.bodyBytes, cE.proofs[0], cG))
799+ let cM = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
800+ let cN = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
801+ let cO = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
802+ let cP = if (sigVerify(cK.bodyBytes, cK.proofs[0], cM))
767803 then 1
768- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cG))
804+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cM))
769805 then 1
770- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cG))
806+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cM))
771807 then 1
772808 else 0
773- let cK = if (sigVerify(cE.bodyBytes, cE.proofs[0], cH))
809+ let cQ = if (sigVerify(cK.bodyBytes, cK.proofs[0], cN))
774810 then 1
775- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cH))
811+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cN))
776812 then 1
777- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cH))
813+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cN))
778814 then 1
779815 else 0
780- let cL = if (sigVerify(cE.bodyBytes, cE.proofs[0], cI))
816+ let cR = if (sigVerify(cK.bodyBytes, cK.proofs[0], cO))
781817 then 1
782- else if (sigVerify(cE.bodyBytes, cE.proofs[1], cI))
818+ else if (sigVerify(cK.bodyBytes, cK.proofs[1], cO))
783819 then 1
784- else if (sigVerify(cE.bodyBytes, cE.proofs[2], cI))
820+ else if (sigVerify(cK.bodyBytes, cK.proofs[2], cO))
785821 then 1
786822 else 0
787- let cM = ((cJ + cK) + cL)
788- let g = cE
789- (cM >= 2)
823+ let cS = ((cP + cQ) + cR)
824+ let g = cK
825+ (cS >= 2)
790826 }
791827

github/deemru/w8io/3ef1775 
262.27 ms