tx · HTgDzzvBeBZjLwhBGywYGcG9LnDsRLfPkiSx43v4nch5

3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y:  -0.02400000 Waves

2023.03.25 21:58 [3571507] smart account 3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y > SELF 0.00000000 Waves

{ "type": 13, "id": "HTgDzzvBeBZjLwhBGywYGcG9LnDsRLfPkiSx43v4nch5", "fee": 2400000, "feeAssetId": null, "timestamp": 1679770701136, "version": 2, "chainId": 87, "sender": "3P9REuLBnYBafDqtEu6hfzs2Rv2haSU158y", "senderPublicKey": "4o7Wphn2swW4DxuPY7UcT6YpsZniEMnDH818h1pC3BeX", "proofs": [ "2orXYuEoi1g9QQWK4gEN514imphjxRjnb11hKBasyUdJtwSdrfGgymaDW63Feje7twCq46oXwYaBGL3gxCPTkKRs" ], "script": "base64:BgI+CAISAwoBCBIICgYCAQEBCAESAwoBCBIDCgEIEgUKAwIIARIDCgEIEgQKAggIEgMKAQgSBAoCCAgSBAoCCAgzABBkZWxheUZvckhhdGNoaW5nAAIAD0hhdGNoaW5nU3RhcnRlZAIQQlJFRURJTkdfU1RBUlRFRAAQSGF0Y2hpbmdGaW5pc2hlZAIRQlJFRURJTkdfRklOSVNIRUQBFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5AQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwECFHN0YXRpY19vcmFjbGVBZGRyZXNzARNnZXRJbmN1YmF0b3JBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwERZ2V0UmViaXJ0aEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACFXN0YXRpY19yZWJpcnRoQWRkcmVzcwEPZ2V0SXRlbXNBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhNzdGF0aWNfaXRlbXNBZGRyZXNzAQ1nZXRFZ2dBc3NldElkAAkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIRc3RhdGljX2VnZ0Fzc2V0SWQBGmdldEJhYnlEdWNrQnJlZWRpbmdBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAh5zdGF0aWNfYmFieUR1Y2tCcmVlZGluZ0FkZHJlc3MBEGdldER1Y2tsaW5nUHJpY2UACQEVdHJ5R2V0SW50ZWdlckV4dGVybmFsAgkBCWdldE9yYWNsZQACFHN0YXRpY19kdWNrbGluZ1ByaWNlARFnZXRDb3Vwb25zQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIVc3RhdGljX2NvdXBvbnNBZGRyZXNzAQ5nZXRCdXJuQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAISc3RhdGljX2J1cm5BZGRyZXNzARVnZXRSZWZDb250cmFjdEFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MADU1heEdlbmVyYXRpb24ABwALR2VuZXJhdGlvbnMJAMwIAgIBRwkAzAgCAgFICQDMCAICAUkJAMwIAgIBSwkAzAgCAgFMCQDMCAICAU0JAMwIAgIBTgkAzAgCAgFPBQNuaWwBE2dldFByb2Nlc3NTdGF0dXNLZXkCB2FkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwkA2AQBBQR0eElkAgdfc3RhdHVzAQ5nZXREdWNrbGluZ0tleQIHYWRkcmVzcwR0eElkCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzAgFfCQDYBAEFBHR4SWQCCV9kdWNrbGluZwEZZ2V0UHJvY2Vzc0ZpbmlzaEhlaWdodEtleQIHYWRkcmVzcwR0eElkCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzAgFfCQDYBAEFBHR4SWQCA19maAEQZ2V0RHVja1BhcmVudEtleQIEdHhJZAlwYXJlbnROdW0JAKwCAgkArAICCQCsAgICB2luaXR0eF8JANgEAQUEdHhJZAIHX3BhcmVudAkApAMBBQlwYXJlbnROdW0BDGdldER1Y2tJZEtleQIHYWRkcmVzcwR0eElkCQCsAgIJAKwCAgkArAICBQdhZGRyZXNzAgFfCQDYBAEFBHR4SWQCA19kaQEPZ2V0RHVja1N0YXRzS2V5AQlnZW5TdHJpbmcJAKwCAgkArAICAgZzdGF0c18FCWdlblN0cmluZwIHX2Ftb3VudAENdHJ5R2V0SW50ZWdlcgEDa2V5BAN2YWwEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAABQN2YWwBE2RldGVybWluZUdlbmVyYXRpb24CAmcxAmcyBAZnSW5kZXgJAJYDAQkAzAgCCQEFdmFsdWUBCQDPCAIFC0dlbmVyYXRpb25zBQJnMQkAzAgCCQEFdmFsdWUBCQDPCAIFC0dlbmVyYXRpb25zBQJnMgUDbmlsCQCRAwIFC0dlbmVyYXRpb25zCQBkAgUGZ0luZGV4AAEBD2dldFJhbmRvbU51bWJlcgQIdmFyaWFudHMEdHhJZBRoYXRjaGluZ0ZpbmlzaEhlaWdodAZvZmZzZXQED3JhbmRvbVNlZWRCbG9jawkBBXZhbHVlAQkA7QcBCQBlAgUUaGF0Y2hpbmdGaW5pc2hIZWlnaHQAAQQKcmFuZG9tSGFzaAkA1BYBCQDLAQIFBHR4SWQJAQV2YWx1ZQEIBQ9yYW5kb21TZWVkQmxvY2sDdnJmCQBqAgkAsgkCBQpyYW5kb21IYXNoBQZvZmZzZXQFCHZhcmlhbnRzAQxnZXRSYW5kb21HZW4JBGdlbjEEZ2VuMgRzdGVwBHR4SWQUaGF0Y2hpbmdGaW5pc2hIZWlnaHQOZ2VuZUZyb21QYXJlbnQLZ2VuZVBvc3Rpb24Oc3BlY2lmaXF1ZUdlbmUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgMDCQECIT0CBQ5nZW5lRnJvbVBhcmVudAAACQAAAgULZ2VuZVBvc3Rpb24FBHN0ZXAHAwkAAAIFDmdlbmVGcm9tUGFyZW50AAEFBGdlbjEDCQAAAgUOZ2VuZUZyb21QYXJlbnQAAgUEZ2VuMgkAAgECIFBhcmVudCBlaXRoZXIgbmVlZHMgdG8gYmUgMSBvciAyAwMJAQIhPQIFDnNwZWNpZmlxdWVHZW5lAgAJAAACBRZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uBQRzdGVwBwUOc3BlY2lmaXF1ZUdlbmUECXJhbmRvbU51bQkBD2dldFJhbmRvbU51bWJlcgQAAgUEdHhJZAUUaGF0Y2hpbmdGaW5pc2hIZWlnaHQFBHN0ZXAEA2dlbgMJAAACBQlyYW5kb21OdW0AAAUEZ2VuMQUEZ2VuMgUDZ2VuARVjaGVja0Fzc2V0SW5JbmN1YmF0b3IBB2Fzc2V0SWQEBnJlc3VsdAQHJG1hdGNoMAkAnQgCCQETZ2V0SW5jdWJhdG9yQWRkcmVzcwAFB2Fzc2V0SWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFiBQckbWF0Y2gwBgcEB3Jlc3VsdDIEByRtYXRjaDAJAJ0IAgUEdGhpcwUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWMFByRtYXRjaDAGBwMFBnJlc3VsdAYFB3Jlc3VsdDIBDGNhbkJlQnJlZWRlZAIIYXNzZXQxSWQIYXNzZXQySWQECWFzc2V0MUdlbgkAtQkCCAkBBXZhbHVlAQkA7AcBBQhhc3NldDFJZARuYW1lAgAECWFzc2V0MkdlbgkAtQkCCAkBBXZhbHVlAQkA7AcBBQhhc3NldDJJZARuYW1lAgADCQBnAgkBBXZhbHVlAQkAzwgCBQtHZW5lcmF0aW9ucwkAkQMCBQlhc3NldDFHZW4ADgUNTWF4R2VuZXJhdGlvbgkArAICCQCsAgICKXlvdSBjYW4gb25seSBicmVlZCBkdWNrcyB3aXRoIGdlbmVyYXRpb24gCQCRAwIFC0dlbmVyYXRpb25zBQ1NYXhHZW5lcmF0aW9uAgogYW5kIGxvd2VyAwkAZwIJAQV2YWx1ZQEJAM8IAgULR2VuZXJhdGlvbnMJAJEDAgUJYXNzZXQyR2VuAA4FDU1heEdlbmVyYXRpb24JAKwCAgkArAICAil5b3UgY2FuIG9ubHkgYnJlZWQgZHVja3Mgd2l0aCBnZW5lcmF0aW9uIAkAkQMCBQtHZW5lcmF0aW9ucwUNTWF4R2VuZXJhdGlvbgIKIGFuZCBsb3dlcgIEdHJ1ZQEJaXNTeW1ib2xBAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFBCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sQgILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBQgkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEMCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUMJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xEAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFECQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sRQILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBRQkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEYCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUYJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xHAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFHCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sSAILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBSAkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbEkCC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAUkJAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xLAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFLCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sTAILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBTAkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAAQlpc1N5bWJvbE0CC2FjY3VtdWxhdGVkA3N5bQMJAAACBQNzeW0CAU0JAGQCBQthY2N1bXVsYXRlZAABCQBkAgULYWNjdW11bGF0ZWQAAAEJaXNTeW1ib2xTAgthY2N1bXVsYXRlZANzeW0DCQAAAgUDc3ltAgFTCQBkAgULYWNjdW11bGF0ZWQAAQkAZAIFC2FjY3VtdWxhdGVkAAABCWlzU3ltYm9sVAILYWNjdW11bGF0ZWQDc3ltAwkAAAIFA3N5bQIBVAkAZAIFC2FjY3VtdWxhdGVkAAEJAGQCBQthY2N1bXVsYXRlZAAAARBnZXRBbW91bnRPckNsZWFyAQZhbW91bnQDCQEIY29udGFpbnMCBQZhbW91bnQCATACAAUGYW1vdW50AQhhc1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwBQZzdHJpbmcJAAIBAhx3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAhl3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50ARJjb21wb3NlR2VuZXJpY0RhdGEEB2R1Y2tHZW4JZHVja0lkS2V5B2Fzc2V0SWQFYXNzZXQEB2Zhcm1HZW4JAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIOZ2V0R2VuRnJvbU5hbWUJAMwIAgUHZHVja0dlbgUDbmlsBQNuaWwDCQAAAgUHZmFybUdlbgUHZmFybUdlbgQGYW1vdW50CQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuBAhxdWFudGl0eQkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIGc3RhdHNfBQdmYXJtR2VuAglfcXVhbnRpdHkJAMwIAgkBC1N0cmluZ0VudHJ5AgUJZHVja0lkS2V5CQDYBAEFB2Fzc2V0SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkA2AQBBQdhc3NldElkBQlkdWNrSWRLZXkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuCQBkAgUGYW1vdW50AAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQkAZAIFCHF1YW50aXR5AAEJAMwIAgUFYXNzZXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEPZmluaXNoRHVja0hhdGNoAwd0eElkU3RyBW93bmVyD2R1Y2tHZW5lc1N0cmluZwQEdHhJZAkA2QQBBQd0eElkU3RyBBBwcm9jZXNzU3RhdHVzS2V5CQETZ2V0UHJvY2Vzc1N0YXR1c0tleQIFBW93bmVyBQR0eElkBAlkdWNrSWRLZXkJAQxnZXREdWNrSWRLZXkCBQVvd25lcgUEdHhJZAQPcHJvY2Vzc1R4U3RhdHVzCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBRBwcm9jZXNzU3RhdHVzS2V5BA9maW5pc2hIZWlnaHRLZXkJARlnZXRQcm9jZXNzRmluaXNoSGVpZ2h0S2V5AgUFb3duZXIFBHR4SWQEE3Byb2Nlc3NGaW5pc2hIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFD2ZpbmlzaEhlaWdodEtleQMJAAACBQ9wcm9jZXNzVHhTdGF0dXMFEEhhdGNoaW5nRmluaXNoZWQEBmR1Y2tJZAkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwkBDGdldER1Y2tJZEtleQIFBW93bmVyBQR0eElkCQACAQkArAICAkBUaGUgZHVjayB3YXMgYnJlZWRlZCBhbmQgY2xhaW1lZCBhbHJlYWR5LCBoZXJlIGlzIHRoZSBmb2xvd2luZzogBQZkdWNrSWQDCQBmAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAUGaGVpZ2h0CQACAQkArAICCQCsAgIJAKwCAgkArAICAh1CcmVlZGluZyBpcyBub3QgZmluaXNoZWQgeWV0IAkApAMBCQBlAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAUGaGVpZ2h0AicgYmxvY2tzIHJlbWFpbmluZywgaXQgd2lsbCB0YWtlIGFyb3VuZCAJAKQDAQkAZQIFE3Byb2Nlc3NGaW5pc2hIZWlnaHQFBmhlaWdodAIIIG1pbnV0ZXMEB2R1Y2tHZW4DCQAAAgUPZHVja0dlbmVzU3RyaW5nAgAJAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIMZ2VuZXJhdGVEdWNrCQDMCAIFBHR4SWQJAMwIAgUTcHJvY2Vzc0ZpbmlzaEhlaWdodAkAzAgCAAAJAMwIAgAACQDMCAICAAkAzAgCAAAFA25pbAUDbmlsBQ9kdWNrR2VuZXNTdHJpbmcDCQAAAgUHZHVja0dlbgUHZHVja0dlbgQLZGVzY3JpcHRpb24JAKwCAgkArAICAg57Imdlbm90eXBlIjogIgUHZHVja0dlbgIZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQFYXNzZXQJAMMIBwUHZHVja0dlbgULZGVzY3JpcHRpb24AAQAABwUEdW5pdAUTcHJvY2Vzc0ZpbmlzaEhlaWdodAQHYXNzZXRJZAkAuAgBBQVhc3NldAkAzggCCQESY29tcG9zZUdlbmVyaWNEYXRhBAUHZHVja0dlbgUJZHVja0lkS2V5BQdhc3NldElkBQVhc3NldAkAzAgCCQELU3RyaW5nRW50cnkCBRBwcm9jZXNzU3RhdHVzS2V5BRBIYXRjaGluZ0ZpbmlzaGVkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFBW93bmVyAAEFB2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEHZ2V0Qm9vbAEDa2V5BAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwEJaXNUZXN0RW52AAkBB2dldEJvb2wBAgdURVNURU5WCgFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCmFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBDGdlbmVyYXRlRHVjawYEdHhJZBRoYXRjaGluZ0ZpbmlzaEhlaWdodA5nZW5lRnJvbVBhcmVudAtnZW5lUG9zdGlvbg5zcGVjaWZpcXVlR2VuZRZzcGVjaWZpcXVlR2VuZVBvc2l0aW9uBAtjb2xvclJhbmRvbQkBD2dldFJhbmRvbU51bWJlcgQABAUEdHhJZAUUaGF0Y2hpbmdGaW5pc2hIZWlnaHQACwQFY29sb3IDCQAAAgULY29sb3JSYW5kb20AAAIBWQMJAAACBQtjb2xvclJhbmRvbQABAgFHAwkAAAIFC2NvbG9yUmFuZG9tAAICAUICAVIECXBhcmVudDFJZAkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBEGdldER1Y2tQYXJlbnRLZXkCBQR0eElkAAEECXBhcmVudDJJZAkA2QQBCQEMdHJ5R2V0U3RyaW5nAQkBEGdldER1Y2tQYXJlbnRLZXkCBQR0eElkAAIECnBhcmVudDFHZW4JALUJAggJAQV2YWx1ZQEJAOwHAQUJcGFyZW50MUlkBG5hbWUCAAQKcGFyZW50MkdlbgkAtQkCCAkBBXZhbHVlAQkA7AcBBQlwYXJlbnQySWQEbmFtZQIABANnZW4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgVEVUNLLQkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAFCQCRAwIFCnBhcmVudDJHZW4ABQAABQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAGCQCRAwIFCnBhcmVudDJHZW4ABgABBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAHCQCRAwIFCnBhcmVudDJHZW4ABwACBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAICQCRAwIFCnBhcmVudDJHZW4ACAADBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAJCQCRAwIFCnBhcmVudDJHZW4ACQAEBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAKCQCRAwIFCnBhcmVudDJHZW4ACgAFBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgALCQCRAwIFCnBhcmVudDJHZW4ACwAGBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgkBDGdldFJhbmRvbUdlbgkJAJEDAgUKcGFyZW50MUdlbgAMCQCRAwIFCnBhcmVudDJHZW4ADAAHBQR0eElkBRRoYXRjaGluZ0ZpbmlzaEhlaWdodAUOZ2VuZUZyb21QYXJlbnQFC2dlbmVQb3N0aW9uBQ5zcGVjaWZpcXVlR2VuZQUWc3BlY2lmaXF1ZUdlbmVQb3NpdGlvbgIBLQkBE2RldGVybWluZUdlbmVyYXRpb24CCQCRAwIFCnBhcmVudDFHZW4ADgkAkQMCBQpwYXJlbnQyR2VuAA4FBWNvbG9yCQCUCgIFA25pbAUDZ2VuAWkBDmdldEdlbkZyb21OYW1lAQlhc3NldE5hbWUECGdlbm90eXBlCQC1CQIJALMCAgkAsAICBQlhc3NldE5hbWUABQADAgAECmdlbmVyYXRpb24JAJEDAgkAtQkCBQlhc3NldE5hbWUCAAAOBANnZW4JAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJ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aWFsR2VuZXMDB2FkZHJlc3MHZHVja0dlbghjaGlsZHJlbgMDCQECIT0CCAUBaQZjYWxsZXIJAQ9nZXRJdGVtc0FkZHJlc3MACQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQITYWRtaW4gb3IgaXRlbXMgb25seQQEdHhJZAgFAWkNdHJhbnNhY3Rpb25JZAQLZGVzY3JpcHRpb24JAKwCAgkArAICAg57Imdlbm90eXBlIjogIgUHZHVja0dlbgIZIiwgImNyb3NzYnJlZWRpbmciOiB0cnVlfQQFYXNzZXQJAMIIBQUHZHVja0dlbgULZGVzY3JpcHRpb24AAQAABwQHYXNzZXRJZAkAuAgBBQVhc3NldAQJZHVja0lkS2V5CQEMZ2V0RHVja0lkS2V5AgkApQgBCAUBaQZjYWxsZXIFBHR4SWQEB2Zhcm1HZW4JAQhhc1N0cmluZwEJAPwHBAUEdGhpcwIOZ2V0R2VuRnJvbU5hbWUJAMwIAgUHZHVja0dlbgUDbmlsBQNuaWwDCQAAAgUHZmFybUdlbgUHZmFybUdlbgkAzggCCQESY29tcG9zZUdlbmVyaWNEYXRhBAUHZHVja0dlbgUJZHVja0lkS2V5BQdhc3NldElkBQVhc3NldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBmFzc2V0XwkA2AQBBQdhc3NldElkAglfY2hpbGRyZW4FCGNoaWxkcmVuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUHYWRkcmVzcwABBQdhc3NldElkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERc3RhcnREdWNrQnJlZWRpbmcBDnJlZmVyZXJBZGRyZXNzBAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQNc2Vjb25kUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAxmaXJzdEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDGZpcnN0UGF5bWVudAdhc3NldElkBA1zZWNvbmRBc3NldElkCQDYBAEJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQDAwkBAiE9AggFDGZpcnN0UGF5bWVudAZhbW91bnQAAQYJAQIhPQIIBQ1zZWNvbmRQYXltZW50BmFtb3VudAABCQACAQITTkZUIGlzIG5vdCBhdHRhY2hlZAQTYW1vdW50UGFpZEJ5Q291cG9ucwkBBWFzSW50AQkA/AcECQERZ2V0Q291cG9uc0FkZHJlc3MAAgp1c2VDb3Vwb25zCQDMCAIJARBnZXREdWNrbGluZ1ByaWNlAAUDbmlsBQNuaWwDCQAAAgUTYW1vdW50UGFpZEJ5Q291cG9ucwUTYW1vdW50UGFpZEJ5Q291cG9ucwQJbGVmdFRvUGF5CQBlAgkBEGdldER1Y2tsaW5nUHJpY2UABRNhbW91bnRQYWlkQnlDb3Vwb25zBAdwYXltZW50AwkBAiE9AgUJbGVmdFRvUGF5AAAEDHRoaXJkUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwACAwkBAiE9AggFDHRoaXJkUGF5bWVudAdhc3NldElkCQENZ2V0RWdnQXNzZXRJZAAJAAIBCQCsAgICQkJTREI6IFlvdSBjYW4gYXR0YWNoIG9ubHkgRUdHIHRva2VucyB3aXRoIHRoZSBmb2xsb3dpbmcgYXNzZXQgaWQ6IAkA2AQBCQENZ2V0RWdnQXNzZXRJZAADCQECIT0CCAUMdGhpcmRQYXltZW50BmFtb3VudAUJbGVmdFRvUGF5CQACAQkArAICAkNCU0RCOiBUbyBicmVlZCB5b3UgY3VycmVudGx5IG5lZWQgdGhlIGZvbGxvd2luZyBhbW91bnQgb2YgRUdHbGV0czogCQCkAwEFCWxlZnRUb1BheQQVcmVmZXJlclJld2FyZEZvclBlcmNoCQBrAwUJbGVmdFRvUGF5AAUAZAQHcmVmQ2FsbAkA/AcECQEVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAIKcmVmUGF5bWVudAkAzAgCBQ5yZWZlcmVyQWRkcmVzcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQENZ2V0RWdnQXNzZXRJZAAFFXJlZmVyZXJSZXdhcmRGb3JQZXJjaAUDbmlsAwkAAAIFB3JlZkNhbGwFB3JlZkNhbGwECGJ1cm5DYWxsCQD8BwQJAQ5nZXRCdXJuQWRkcmVzcwACFGJ1cm5BdHRhY2hlZFBheW1lbnRzBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJAQ1nZXRFZ2dBc3NldElkAAkAZQIFCWxlZnRUb1BheQUVcmVmZXJlclJld2FyZEZvclBlcmNoBQNuaWwDCQAAAgUIYnVybkNhbGwFCGJ1cm5DYWxsBQlsZWZ0VG9QYXkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAMJAAACBQdwYXltZW50BQdwYXltZW50BAljaGlsZHJlbjEJAQVhc0ludAEJAPwHBAUEdGhpcwIWdmFsaWRhdGVBbmRHZXRDaGlsZHJlbgkAzAgCBQxmaXJzdEFzc2V0SWQFA25pbAUDbmlsAwkAAAIFCWNoaWxkcmVuMQUJY2hpbGRyZW4xBAljaGlsZHJlbjIJAQVhc0ludAEJAPwHBAUEdGhpcwIWdmFsaWRhdGVBbmRHZXRDaGlsZHJlbgkAzAgCBQ1zZWNvbmRBc3NldElkBQNuaWwFA25pbAMJAAACBQljaGlsZHJlbjIFCWNoaWxkcmVuMgMDCQBmAgUJY2hpbGRyZW4xAAAGCQBmAgUJY2hpbGRyZW4yAAAJAAIBAjxPbmUgZHVjayBjYW4gYmUgdXNlZCBmb3IgYnJlZWRpbmcgb25seSBvbmNlIGluIGl0cyBsaWZldGltZS4EDWJyZWVkZWRTdGF0dXMJAQxjYW5CZUJyZWVkZWQCCQDZBAEFDGZpcnN0QXNzZXRJZAkA2QQBBQ1zZWNvbmRBc3NldElkAwkBAiE9AgUNYnJlZWRlZFN0YXR1cwIEdHJ1ZQkAAgEJAKwCAgIfVGhlc2UgZHVja3MgY2Fubm90IGJlIGJyZWVkZWQ6IAUNYnJlZWRlZFN0YXR1cwQKcGFyZW50MUdlbgkAtQkCCAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQEbmFtZQIABApwYXJlbnQyR2VuCQC1CQIICQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQEbmFtZQIABARuZXdHCQETZGV0ZXJtaW5lR2VuZXJhdGlvbgIJAJEDAgUKcGFyZW50MUdlbgAOCQCRAwIFCnBhcmVudDJHZW4ADgQLc3BpY2VBbW91bnQJAGgCCQBkAgkBBXZhbHVlAQkAzwgCBQtHZW5lcmF0aW9ucwUEbmV3RwABAAoEC2R1Y2tsaW5nR2VuCQEIYXNTdHJpbmcBCQD8BwQJARpnZXRCYWJ5RHVja0JyZWVkaW5nQWRkcmVzcwACDWlzc3VlRHVja2xpbmcJAMwIAgkApQgBCAUBaQZjYWxsZXIJAMwIAgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDMCAIFC3NwaWNlQW1vdW50CQDMCAIFBG5ld0cFA25pbAUDbmlsAwkAAAIFC2R1Y2tsaW5nR2VuBQtkdWNrbGluZ0dlbgkAzAgCCQELU3RyaW5nRW50cnkCCQEQZ2V0RHVja1BhcmVudEtleQIIBQFpDXRyYW5zYWN0aW9uSWQAAQUMZmlyc3RBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJARBnZXREdWNrUGFyZW50S2V5AggFAWkNdHJhbnNhY3Rpb25JZAACBQ1zZWNvbmRBc3NldElkCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNnZXRQcm9jZXNzU3RhdHVzS2V5AgkApQgBCAUBaQZjYWxsZXIIBQFpDXRyYW5zYWN0aW9uSWQFD0hhdGNoaW5nU3RhcnRlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGWdldFByb2Nlc3NGaW5pc2hIZWlnaHRLZXkCCQClCAEIBQFpBmNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAkAZAIFBmhlaWdodAUQZGVsYXlGb3JIYXRjaGluZwkAzAgCCQELU3RyaW5nRW50cnkCCQEOZ2V0RHVja2xpbmdLZXkCCQClCAEIBQFpBmNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAULZHVja2xpbmdHZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZhc3NldF8FDGZpcnN0QXNzZXRJZAIJX2NoaWxkcmVuAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZhc3NldF8FDXNlY29uZEFzc2V0SWQCCV9jaGlsZHJlbgABCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJAQV2YWx1ZQEIBQ1zZWNvbmRQYXltZW50B2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdmaW5pc2hEdWNrSGF0Y2hpbmdJdGVtcwIHdHhJZFN0cg9kdWNrR2VuZXNTdHJpbmcDAwkBAiE9AggFAWkGY2FsbGVyCQEPZ2V0SXRlbXNBZGRyZXNzAAkBAiE9AgUPZHVja0dlbmVzU3RyaW5nAgAHCQACAQIhT25seSBpdGVtcyBjYW4gY3JlYXRlIGZpeGVkIGdlbmVzBAVvd25lcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEDmR1Y2tsaW5nRmluaXNoCQEIYXNTdHJpbmcBCQD8BwQJARpnZXRCYWJ5RHVja0JyZWVkaW5nQWRkcmVzcwACFHR1cm5EdWNrbGluZ0ludG9EdWNrBQNuaWwIBQFpCHBheW1lbnRzAwkAAAIFDmR1Y2tsaW5nRmluaXNoBQ5kdWNrbGluZ0ZpbmlzaAQOZHVja2xpbmdMaW5rZWQJAQx0cnlHZXRTdHJpbmcBCQEOZ2V0RHVja2xpbmdLZXkCBQVvd25lcgkA2QQBBQd0eElkU3RyAwkBAiE9AgUOZHVja2xpbmdMaW5rZWQFDmR1Y2tsaW5nRmluaXNoCQACAQIjUGxlYXNlIGF0dGFjaCB0aGUgY29ycmVjdCBkdWNrbGluZyEJAQ9maW5pc2hEdWNrSGF0Y2gDBQd0eElkU3RyBQVvd25lcgUPZHVja0dlbmVzU3RyaW5nCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmZpbmlzaER1Y2tIYXRjaGluZwEHdHhJZFN0cgQFb3duZXIJAKUIAQgFAWkGY2FsbGVyBA5kdWNrbGluZ0ZpbmlzaAkBCGFzU3RyaW5nAQkA/AcECQEaZ2V0QmFieUR1Y2tCcmVlZGluZ0FkZHJlc3MAAhR0dXJuRHVja2xpbmdJbnRvRHVjawUDbmlsCAUBaQhwYXltZW50cwMJAAACBQ5kdWNrbGluZ0ZpbmlzaAUOZHVja2xpbmdGaW5pc2gEDmR1Y2tsaW5nTGlua2VkCQEMdHJ5R2V0U3RyaW5nAQkBDmdldER1Y2tsaW5nS2V5AgUFb3duZXIJANkEAQUHdHhJZFN0cgMJAQIhPQIFDmR1Y2tsaW5nTGlua2VkBQ5kdWNrbGluZ0ZpbmlzaAkAAgECI1BsZWFzZSBhdHRhY2ggdGhlIGNvcnJlY3QgZHVja2xpbmchCQEPZmluaXNoRHVja0hhdGNoAwUHdHhJZFN0cgUFb3duZXICAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARdmaW5pc2hEdWNrSGF0Y2hpbmdBZG1pbgIHdHhJZFN0cgVvd25lcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECH0JGREg6IE9ubHkgYWRtaW5zIGNhbiBydW4gdGhpcyEJAQ9maW5pc2hEdWNrSGF0Y2gDBQd0eElkU3RyBQVvd25lcgIAAWkBDHJlZHVjZVJhcml0eQIHYXNzZXRJZAdmYXJtR2VuBAVhc3NldAkA2QQBBQdhc3NldElkAwMDCQECIT0CCAUBaQZjYWxsZXIJAQ9nZXRJdGVtc0FkZHJlc3MACQECIT0CCAUBaQZjYWxsZXIJARFnZXRSZWJpcnRoQWRkcmVzcwAHCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMHCQACAQIcYWRtaW4sIGl0ZW1zIG9yIHJlYmlydGggb25seQQHZHVja0dlbggJAQV2YWx1ZQEJAOwHAQUFYXNzZXQEbmFtZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2dldER1Y2tTdGF0c0tleQEFB2R1Y2tHZW4JAGUCCQENdHJ5R2V0SW50ZWdlcgEJAQ9nZXREdWNrU3RhdHNLZXkBBQdkdWNrR2VuAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdGF0c18FB2Zhcm1HZW4CCV9xdWFudGl0eQkAZQIJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBnN0YXRzXwUHZmFybUdlbgIJX3F1YW50aXR5AAEFA25pbAECdHgBBnZlcmlmeQADCQEJaXNUZXN0RW52AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQJZmlyc3RVc2VyASDe1sZR5FMW0GWA6wGaKgvQ95dR+hx2kX6bjgZDdxe9JQQKc2Vjb25kVXNlcgEgwWzfju3TjXOPi6L5+okP9HXNRBtUclKjtJzSVqQt4HUECXRoaXJkVXNlcgEg51v0jqrS+UmeboQmuPl+H9xnqH3cK7jU6nvN8mgKwSUED2ZpcnN0VXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQlmaXJzdFVzZXIAAQAABBBzZWNvbmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUKc2Vjb25kVXNlcgABAAAED3RoaXJkVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQl0aGlyZFVzZXIAAQAABA9zaWduYXR1cmVzQ291bnQJAGQCCQBkAgUPZmlyc3RVc2VyU2lnbmVkBRBzZWNvbmRVc2VyU2lnbmVkBQ90aGlyZFVzZXJTaWduZWQEByRtYXRjaDAFAnR4CQBnAgUPc2lnbmF0dXJlc0NvdW50AAKixGAE", "height": 3571507, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BUpqf6ZhJz2udpD2AVtoQkDSM4EGnAS3y7y9TxToxtWY Next: A7hAEKysdz2AfZVAAbhLaJCjhGKuXFc9zuC71ensjasA 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 () = Address(fromBase58String(k("static_oracleAddress")))
3636
3737
3838 func m () = Address(fromBase58String(d(l(), "static_incubatorAddress")))
3939
4040
4141 func n () = Address(fromBase58String(d(l(), "static_rebirthAddress")))
4242
4343
4444 func o () = Address(fromBase58String(d(l(), "static_itemsAddress")))
4545
4646
4747 func p () = fromBase58String(d(l(), "static_eggAssetId"))
4848
4949
5050 func q () = Address(fromBase58String(d(l(), "static_babyDuckBreedingAddress")))
5151
5252
5353 func r () = i(l(), "static_ducklingPrice")
5454
5555
5656 func s () = Address(fromBase58String(d(l(), "static_couponsAddress")))
5757
5858
5959 func t () = Address(fromBase58String(d(l(), "static_burnAddress")))
6060
6161
6262 func u () = Address(fromBase58String(d(l(), "static_refContractAddress")))
6363
6464
6565 let v = 7
6666
6767 let w = ["G", "H", "I", "K", "L", "M", "N", "O"]
6868
6969 func x (e,y) = (((e + "_") + toBase58String(y)) + "_status")
7070
7171
7272 func z (e,y) = (((e + "_") + toBase58String(y)) + "_duckling")
7373
7474
7575 func A (e,y) = (((e + "_") + toBase58String(y)) + "_fh")
7676
7777
7878 func B (y,C) = ((("inittx_" + toBase58String(y)) + "_parent") + toString(C))
7979
8080
8181 func D (e,y) = (((e + "_") + toBase58String(y)) + "_di")
8282
8383
8484 func E (F) = (("stats_" + F) + "_amount")
8585
8686
8787 func G (f) = {
8888 let H = {
8989 let g = getInteger(this, f)
9090 if ($isInstanceOf(g, "Int"))
9191 then {
9292 let j = g
9393 j
9494 }
9595 else 0
9696 }
9797 H
9898 }
9999
100100
101101 func I (J,K) = {
102102 let L = max([value(indexOf(w, J)), value(indexOf(w, K))])
103103 w[(L + 1)]
104104 }
105105
106106
107107 func M (N,y,O,P) = {
108108 let Q = value(blockInfoByHeight((O - 1)))
109109 let R = sha256_16Kb((y + value(Q.vrf)))
110110 (toInt(R, P) % N)
111111 }
112112
113113
114114 func S (T,U,V,y,O,W,X,Y,Z) = if (if ((W != 0))
115115 then (X == V)
116116 else false)
117117 then if ((W == 1))
118118 then T
119119 else if ((W == 2))
120120 then U
121121 else throw("Parent either needs to be 1 or 2")
122122 else if (if ((Y != ""))
123123 then (Z == V)
124124 else false)
125125 then Y
126126 else {
127127 let aa = M(2, y, O, V)
128128 let ab = if ((aa == 0))
129129 then T
130130 else U
131131 ab
132132 }
133133
134134
135135 func ac (ad) = {
136136 let ae = {
137137 let g = getString(m(), ad)
138138 if ($isInstanceOf(g, "String"))
139139 then {
140140 let j = g
141141 true
142142 }
143143 else false
144144 }
145145 let af = {
146146 let g = getString(this, ad)
147147 if ($isInstanceOf(g, "String"))
148148 then {
149149 let ag = g
150150 true
151151 }
152152 else false
153153 }
154154 if (ae)
155155 then true
156156 else af
157157 }
158158
159159
160160 func ah (ai,aj) = {
161161 let ak = split(value(assetInfo(ai)).name, "")
162162 let al = split(value(assetInfo(aj)).name, "")
163163 if ((value(indexOf(w, ak[14])) >= v))
164164 then (("you can only breed ducks with generation " + w[v]) + " and lower")
165165 else if ((value(indexOf(w, al[14])) >= v))
166166 then (("you can only breed ducks with generation " + w[v]) + " and lower")
167167 else "true"
168168 }
169169
170170
171171 func am (an,ao) = if ((ao == "A"))
172172 then (an + 1)
173173 else (an + 0)
174174
175175
176176 func ap (an,ao) = if ((ao == "B"))
177177 then (an + 1)
178178 else (an + 0)
179179
180180
181181 func aq (an,ao) = if ((ao == "C"))
182182 then (an + 1)
183183 else (an + 0)
184184
185185
186186 func ar (an,ao) = if ((ao == "D"))
187187 then (an + 1)
188188 else (an + 0)
189189
190190
191191 func as (an,ao) = if ((ao == "E"))
192192 then (an + 1)
193193 else (an + 0)
194194
195195
196196 func at (an,ao) = if ((ao == "F"))
197197 then (an + 1)
198198 else (an + 0)
199199
200200
201201 func au (an,ao) = if ((ao == "G"))
202202 then (an + 1)
203203 else (an + 0)
204204
205205
206206 func av (an,ao) = if ((ao == "H"))
207207 then (an + 1)
208208 else (an + 0)
209209
210210
211211 func aw (an,ao) = if ((ao == "I"))
212212 then (an + 1)
213213 else (an + 0)
214214
215215
216216 func ax (an,ao) = if ((ao == "K"))
217217 then (an + 1)
218218 else (an + 0)
219219
220220
221221 func ay (an,ao) = if ((ao == "L"))
222222 then (an + 1)
223223 else (an + 0)
224224
225225
226226 func az (an,ao) = if ((ao == "M"))
227227 then (an + 1)
228228 else (an + 0)
229229
230230
231231 func aA (an,ao) = if ((ao == "S"))
232232 then (an + 1)
233233 else (an + 0)
234234
235235
236236 func aB (an,ao) = if ((ao == "T"))
237237 then (an + 1)
238238 else (an + 0)
239239
240240
241241 func aC (aD) = if (contains(aD, "0"))
242242 then ""
243243 else aD
244244
245245
246246 func aE (aF) = {
247247 let g = aF
248248 if ($isInstanceOf(g, "String"))
249249 then {
250250 let aG = g
251251 aG
252252 }
253253 else throw("wrong type, expected: String")
254254 }
255255
256256
257257 func aH (aF) = {
258258 let g = aF
259259 if ($isInstanceOf(g, "Int"))
260260 then {
261261 let aI = g
262262 aI
263263 }
264264 else throw("wrong type, expected: Int")
265265 }
266266
267267
268268 func aJ (aK,aL,ad,aM) = {
269269 let aN = aE(invoke(this, "getGenFromName", [aK], nil))
270270 if ((aN == aN))
271271 then {
272272 let aD = G(E(aK))
273273 let aO = G((("stats_" + aN) + "_quantity"))
274274 [StringEntry(aL, toBase58String(ad)), StringEntry(toBase58String(ad), aL), IntegerEntry(E(aK), (aD + 1)), IntegerEntry((("stats_" + aN) + "_quantity"), (aO + 1)), aM]
275275 }
276276 else throw("Strict value is not equal to itself.")
277277 }
278278
279279
280280 func aP (aQ,aR,aS) = {
281281 let y = fromBase58String(aQ)
282282 let aT = x(aR, y)
283283 let aL = D(aR, y)
284284 let aU = getStringValue(this, aT)
285285 let aV = A(aR, y)
286286 let aW = getIntegerValue(this, aV)
287287 if ((aU == c))
288288 then {
289289 let aX = getStringValue(this, D(aR, y))
290290 throw(("The duck was breeded and claimed already, here is the folowing: " + aX))
291291 }
292292 else if ((aW > height))
293293 then throw((((("Breeding is not finished yet " + toString((aW - height))) + " blocks remaining, it will take around ") + toString((aW - height))) + " minutes"))
294294 else {
295295 let aK = if ((aS == ""))
296296 then aE(invoke(this, "generateDuck", [y, aW, 0, 0, "", 0], nil))
297297 else aS
298298 if ((aK == aK))
299299 then {
300300 let aY = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
301301 let aM = Issue(aK, aY, 1, 0, false, unit, aW)
302302 let ad = calculateAssetId(aM)
303303 (aJ(aK, aL, ad, aM) ++ [StringEntry(aT, c), ScriptTransfer(addressFromStringValue(aR), 1, ad)])
304304 }
305305 else throw("Strict value is not equal to itself.")
306306 }
307307 }
308308
309309
310310 func aZ (f) = {
311311 let g = getBoolean(this, f)
312312 if ($isInstanceOf(g, "Boolean"))
313313 then {
314314 let j = g
315315 j
316316 }
317317 else false
318318 }
319319
320320
321321 func ba () = aZ("TESTENV")
322322
323323
324324 @Callable(bb)
325325 func configureOracle (bc) = if ((bb.caller != this))
326326 then throw("admin only")
327327 else [StringEntry("static_oracleAddress", bc)]
328328
329329
330330
331331 @Callable(bb)
332332 func generateDuck (y,O,W,X,Y,Z) = {
333333 let bd = M(4, y, O, 11)
334334 let be = if ((bd == 0))
335335 then "Y"
336336 else if ((bd == 1))
337337 then "G"
338338 else if ((bd == 2))
339339 then "B"
340340 else "R"
341341 let bf = fromBase58String(k(B(y, 1)))
342342 let bg = fromBase58String(k(B(y, 2)))
343343 let bh = split(value(assetInfo(bf)).name, "")
344344 let bi = split(value(assetInfo(bg)).name, "")
345345 let ab = ((((((((((("DUCK-" + S(bh[5], bi[5], 0, y, O, W, X, Y, Z)) + S(bh[6], bi[6], 1, y, O, W, X, Y, Z)) + S(bh[7], bi[7], 2, y, O, W, X, Y, Z)) + S(bh[8], bi[8], 3, y, O, W, X, Y, Z)) + S(bh[9], bi[9], 4, y, O, W, X, Y, Z)) + S(bh[10], bi[10], 5, y, O, W, X, Y, Z)) + S(bh[11], bi[11], 6, y, O, W, X, Y, Z)) + S(bh[12], bi[12], 7, y, O, W, X, Y, Z)) + "-") + I(bh[14], bi[14])) + be)
346346 $Tuple2(nil, ab)
347347 }
348348
349349
350350
351351 @Callable(bb)
352352 func getGenFromName (bj) = {
353353 let bk = split(dropRight(drop(bj, 5), 3), "")
354354 let bl = split(bj, "")[14]
355355 let ab = (((((((((((((((aC((toString({
356356 let bm = bk
357357 let bn = size(bm)
358358 let bo = 0
359359 func bp (bq,br) = if ((br >= bn))
360360 then bq
361361 else am(bq, bm[br])
362362
363363 func bs (bq,br) = if ((br >= bn))
364364 then bq
365365 else throw("List size exceeds 8")
366366
367367 bs(bp(bp(bp(bp(bp(bp(bp(bp(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
368368 }) + "A")) + aC((toString({
369369 let bm = bk
370370 let bn = size(bm)
371371 let bo = 0
372372 func bt (bq,br) = if ((br >= bn))
373373 then bq
374374 else ap(bq, bm[br])
375375
376376 func bu (bq,br) = if ((br >= bn))
377377 then bq
378378 else throw("List size exceeds 8")
379379
380380 bu(bt(bt(bt(bt(bt(bt(bt(bt(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
381381 }) + "B"))) + aC((toString({
382382 let bm = bk
383383 let bn = size(bm)
384384 let bo = 0
385385 func bv (bq,br) = if ((br >= bn))
386386 then bq
387387 else aq(bq, bm[br])
388388
389389 func bw (bq,br) = if ((br >= bn))
390390 then bq
391391 else throw("List size exceeds 8")
392392
393393 bw(bv(bv(bv(bv(bv(bv(bv(bv(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
394394 }) + "C"))) + aC((toString({
395395 let bm = bk
396396 let bn = size(bm)
397397 let bo = 0
398398 func bx (bq,br) = if ((br >= bn))
399399 then bq
400400 else ar(bq, bm[br])
401401
402402 func by (bq,br) = if ((br >= bn))
403403 then bq
404404 else throw("List size exceeds 8")
405405
406406 by(bx(bx(bx(bx(bx(bx(bx(bx(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
407407 }) + "D"))) + aC((toString({
408408 let bm = bk
409409 let bn = size(bm)
410410 let bo = 0
411411 func bz (bq,br) = if ((br >= bn))
412412 then bq
413413 else as(bq, bm[br])
414414
415415 func bA (bq,br) = if ((br >= bn))
416416 then bq
417417 else throw("List size exceeds 8")
418418
419419 bA(bz(bz(bz(bz(bz(bz(bz(bz(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
420420 }) + "E"))) + aC((toString({
421421 let bm = bk
422422 let bn = size(bm)
423423 let bo = 0
424424 func bB (bq,br) = if ((br >= bn))
425425 then bq
426426 else at(bq, bm[br])
427427
428428 func bC (bq,br) = if ((br >= bn))
429429 then bq
430430 else throw("List size exceeds 8")
431431
432432 bC(bB(bB(bB(bB(bB(bB(bB(bB(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
433433 }) + "F"))) + aC((toString({
434434 let bm = bk
435435 let bn = size(bm)
436436 let bo = 0
437437 func bD (bq,br) = if ((br >= bn))
438438 then bq
439439 else au(bq, bm[br])
440440
441441 func bE (bq,br) = if ((br >= bn))
442442 then bq
443443 else throw("List size exceeds 8")
444444
445445 bE(bD(bD(bD(bD(bD(bD(bD(bD(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
446446 }) + "G"))) + aC((toString({
447447 let bm = bk
448448 let bn = size(bm)
449449 let bo = 0
450450 func bF (bq,br) = if ((br >= bn))
451451 then bq
452452 else av(bq, bm[br])
453453
454454 func bG (bq,br) = if ((br >= bn))
455455 then bq
456456 else throw("List size exceeds 8")
457457
458458 bG(bF(bF(bF(bF(bF(bF(bF(bF(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
459459 }) + "H"))) + aC((toString({
460460 let bm = bk
461461 let bn = size(bm)
462462 let bo = 0
463463 func bH (bq,br) = if ((br >= bn))
464464 then bq
465465 else aw(bq, bm[br])
466466
467467 func bI (bq,br) = if ((br >= bn))
468468 then bq
469469 else throw("List size exceeds 8")
470470
471471 bI(bH(bH(bH(bH(bH(bH(bH(bH(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
472472 }) + "I"))) + aC((toString({
473473 let bm = bk
474474 let bn = size(bm)
475475 let bo = 0
476476 func bJ (bq,br) = if ((br >= bn))
477477 then bq
478478 else ax(bq, bm[br])
479479
480480 func bK (bq,br) = if ((br >= bn))
481481 then bq
482482 else throw("List size exceeds 8")
483483
484484 bK(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bJ(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
485485 }) + "K"))) + aC((toString({
486486 let bm = bk
487487 let bn = size(bm)
488488 let bo = 0
489489 func bL (bq,br) = if ((br >= bn))
490490 then bq
491491 else ay(bq, bm[br])
492492
493493 func bM (bq,br) = if ((br >= bn))
494494 then bq
495495 else throw("List size exceeds 8")
496496
497497 bM(bL(bL(bL(bL(bL(bL(bL(bL(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
498498 }) + "L"))) + aC((toString({
499499 let bm = bk
500500 let bn = size(bm)
501501 let bo = 0
502502 func bN (bq,br) = if ((br >= bn))
503503 then bq
504504 else az(bq, bm[br])
505505
506506 func bO (bq,br) = if ((br >= bn))
507507 then bq
508508 else throw("List size exceeds 8")
509509
510510 bO(bN(bN(bN(bN(bN(bN(bN(bN(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
511511 }) + "M"))) + aC((toString({
512512 let bm = bk
513513 let bn = size(bm)
514514 let bo = 0
515515 func bP (bq,br) = if ((br >= bn))
516516 then bq
517517 else aA(bq, bm[br])
518518
519519 func bQ (bq,br) = if ((br >= bn))
520520 then bq
521521 else throw("List size exceeds 8")
522522
523523 bQ(bP(bP(bP(bP(bP(bP(bP(bP(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
524524 }) + "S"))) + aC((toString({
525525 let bm = bk
526526 let bn = size(bm)
527527 let bo = 0
528528 func bR (bq,br) = if ((br >= bn))
529529 then bq
530530 else aB(bq, bm[br])
531531
532532 func bS (bq,br) = if ((br >= bn))
533533 then bq
534534 else throw("List size exceeds 8")
535535
536536 bS(bR(bR(bR(bR(bR(bR(bR(bR(bo, 0), 1), 2), 3), 4), 5), 6), 7), 8)
537537 }) + "T"))) + "-") + bl)
538538 $Tuple2(nil, ab)
539539 }
540540
541541
542542
543543 @Callable(bb)
544544 func validateAndGetChildren (ad) = if (!(ac(ad)))
545545 then throw((("You need to attach a valid NFT-duck. " + ad) + " is invalid!"))
546546 else {
547547 let bT = G((("asset_" + ad) + "_children"))
548548 $Tuple2(nil, bT)
549549 }
550550
551551
552552
553553 @Callable(bb)
554554 func createDuckSpecialGenes (e,aK,bT) = if (if ((bb.caller != o()))
555555 then (bb.caller != this)
556556 else false)
557557 then throw("admin or items only")
558558 else {
559559 let y = bb.transactionId
560560 let aY = (("{\"genotype\": \"" + aK) + "\", \"crossbreeding\": true}")
561561 let aM = Issue(aK, aY, 1, 0, false)
562562 let ad = calculateAssetId(aM)
563563 let aL = D(toString(bb.caller), y)
564564 let aN = aE(invoke(this, "getGenFromName", [aK], nil))
565565 if ((aN == aN))
566566 then (aJ(aK, aL, ad, aM) ++ [IntegerEntry((("asset_" + toBase58String(ad)) + "_children"), bT), ScriptTransfer(Address(e), 1, ad)])
567567 else throw("Strict value is not equal to itself.")
568568 }
569569
570570
571571
572572 @Callable(bb)
573573 func startDuckBreeding (bU) = {
574574 let bV = value(bb.payments[0])
575575 let bW = value(bb.payments[1])
576576 let bX = toBase58String(value(bV.assetId))
577577 let bY = toBase58String(value(bW.assetId))
578578 if (if ((bV.amount != 1))
579579 then true
580580 else (bW.amount != 1))
581581 then throw("NFT is not attached")
582582 else {
583583 let bZ = aH(invoke(s(), "useCoupons", [r()], nil))
584584 if ((bZ == bZ))
585585 then {
586586 let ca = (r() - bZ)
587587 let cb = if ((ca != 0))
588588 then {
589589 let cc = value(bb.payments[2])
590590 if ((cc.assetId != p()))
591591 then throw(("BSDB: You can attach only EGG tokens with the following asset id: " + toBase58String(p())))
592592 else if ((cc.amount != ca))
593593 then throw(("BSDB: To breed you currently need the following amount of EGGlets: " + toString(ca)))
594594 else {
595595 let cd = fraction(ca, 5, 100)
596596 let ce = invoke(u(), "refPayment", [bU], [AttachedPayment(p(), cd)])
597597 if ((ce == ce))
598598 then {
599599 let cf = invoke(t(), "burnAttachedPayments", nil, [AttachedPayment(p(), (ca - cd))])
600600 if ((cf == cf))
601601 then ca
602602 else throw("Strict value is not equal to itself.")
603603 }
604604 else throw("Strict value is not equal to itself.")
605605 }
606606 }
607607 else 0
608608 if ((cb == cb))
609609 then {
610610 let cg = aH(invoke(this, "validateAndGetChildren", [bX], nil))
611611 if ((cg == cg))
612612 then {
613613 let ch = aH(invoke(this, "validateAndGetChildren", [bY], nil))
614614 if ((ch == ch))
615615 then if (if ((cg > 0))
616616 then true
617617 else (ch > 0))
618618 then throw("One duck can be used for breeding only once in its lifetime.")
619619 else {
620620 let ci = ah(fromBase58String(bX), fromBase58String(bY))
621621 if ((ci != "true"))
622622 then throw(("These ducks cannot be breeded: " + ci))
623623 else {
624624 let bh = split(value(assetInfo(value(bV.assetId))).name, "")
625625 let bi = split(value(assetInfo(value(bW.assetId))).name, "")
626626 let cj = I(bh[14], bi[14])
627627 let ck = ((value(indexOf(w, cj)) + 1) * 10)
628628 let cl = aE(invoke(q(), "issueDuckling", [toString(bb.caller), toBase58String(bb.transactionId), ck, cj], nil))
629629 if ((cl == cl))
630630 then [StringEntry(B(bb.transactionId, 1), bX), StringEntry(B(bb.transactionId, 2), bY), StringEntry(x(toString(bb.caller), bb.transactionId), b), IntegerEntry(A(toString(bb.caller), bb.transactionId), (height + a)), StringEntry(z(toString(bb.caller), bb.transactionId), cl), IntegerEntry((("asset_" + bX) + "_children"), 1), IntegerEntry((("asset_" + bY) + "_children"), 1), ScriptTransfer(bb.caller, 1, value(bV.assetId)), ScriptTransfer(bb.caller, 1, value(bW.assetId))]
631631 else throw("Strict value is not equal to itself.")
632632 }
633633 }
634634 else throw("Strict value is not equal to itself.")
635635 }
636636 else throw("Strict value is not equal to itself.")
637637 }
638638 else throw("Strict value is not equal to itself.")
639639 }
640640 else throw("Strict value is not equal to itself.")
641641 }
642642 }
643643
644644
645645
646646 @Callable(bb)
647647 func finishDuckHatchingItems (aQ,aS) = if (if ((bb.caller != o()))
648648 then (aS != "")
649649 else false)
650650 then throw("Only items can create fixed genes")
651651 else {
652652 let aR = toString(bb.originCaller)
653653 let cm = aE(invoke(q(), "turnDucklingIntoDuck", nil, bb.payments))
654654 if ((cm == cm))
655655 then {
656656 let cn = k(z(aR, fromBase58String(aQ)))
657657 if ((cn != cm))
658658 then throw("Please attach the correct duckling!")
659659 else aP(aQ, aR, aS)
660660 }
661661 else throw("Strict value is not equal to itself.")
662662 }
663663
664664
665665
666666 @Callable(bb)
667667 func finishDuckHatching (aQ) = {
668668 let aR = toString(bb.caller)
669669 let cm = aE(invoke(q(), "turnDucklingIntoDuck", nil, bb.payments))
670670 if ((cm == cm))
671671 then {
672672 let cn = k(z(aR, fromBase58String(aQ)))
673673 if ((cn != cm))
674674 then throw("Please attach the correct duckling!")
675675 else aP(aQ, aR, "")
676676 }
677677 else throw("Strict value is not equal to itself.")
678678 }
679679
680680
681681
682682 @Callable(bb)
683683 func finishDuckHatchingAdmin (aQ,aR) = if ((bb.caller != this))
684684 then throw("BFDH: Only admins can run this!")
685685 else aP(aQ, aR, "")
686686
687687
688688
689689 @Callable(bb)
690690 func reduceRarity (ad,aN) = {
691691 let aM = fromBase58String(ad)
692692 if (if (if ((bb.caller != o()))
693693 then (bb.caller != n())
694694 else false)
695695 then (bb.caller != this)
696696 else false)
697697 then throw("admin, items or rebirth only")
698698 else {
699699 let aK = value(assetInfo(aM)).name
700700 [IntegerEntry(E(aK), (G(E(aK)) - 1)), IntegerEntry((("stats_" + aN) + "_quantity"), (G((("stats_" + aN) + "_quantity")) - 1))]
701701 }
702702 }
703703
704704
705705 @Verifier(co)
706706 func cp () = if (ba())
707707 then sigVerify(co.bodyBytes, co.proofs[0], co.senderPublicKey)
708708 else {
709709 let cq = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
710710 let cr = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
711711 let cs = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
712712 let ct = if (sigVerify(co.bodyBytes, co.proofs[0], cq))
713713 then 1
714714 else if (sigVerify(co.bodyBytes, co.proofs[1], cq))
715715 then 1
716716 else if (sigVerify(co.bodyBytes, co.proofs[2], cq))
717717 then 1
718718 else 0
719719 let cu = if (sigVerify(co.bodyBytes, co.proofs[0], cr))
720720 then 1
721721 else if (sigVerify(co.bodyBytes, co.proofs[1], cr))
722722 then 1
723723 else if (sigVerify(co.bodyBytes, co.proofs[2], cr))
724724 then 1
725725 else 0
726726 let cv = if (sigVerify(co.bodyBytes, co.proofs[0], cs))
727727 then 1
728728 else if (sigVerify(co.bodyBytes, co.proofs[1], cs))
729729 then 1
730730 else if (sigVerify(co.bodyBytes, co.proofs[2], cs))
731731 then 1
732732 else 0
733733 let cw = ((ct + cu) + cv)
734734 let g = co
735735 (cw >= 2)
736736 }
737737

github/deemru/w8io/3ef1775 
80.92 ms