Transaction executed successfully
Transaction Details
Inspect execution, participants, message data, gas usage, events and raw transaction data.
Transaction hash
C6D097CBC4DE9448C762C1C5AB8BFE24E2550D0CBFBEF7C4FD7F132D95EB7C25
Transaction overview
Execution summary
TX INDEX
0
Position in block
GAS WANTED
12,728,730
Requested gas limit
GAS USED
10,607,305
Gas consumed
FEE
12729ugnot
Transaction fee
Participants
Message
Message #1
m_addpkg
Arguments
g1q5tjjv3kkslzwf2na9y9wk7e5a8ugph8xfsk04
Execution log
msg:0,success:true,log:,events:[]
Events
No events emitted by this transaction.
Raw encoded transaction
CsRECgwvdm0ubV9hZGRwa2cSs0QKKGcxcTV0amp2M2trc2x6d2YybmE5eTl3azdlNWE4dWdwaDh4ZnNrMDQShkQKBHhnbnMSG2duby5sYW5kL3IvZ25vc3dhcC9nb3YveGducxruJQoJUkVBRE1FLm1kEuAlIyB4R05TCgpOb24tdHJhbnNmZXJhYmxlIHJlY2VpcHQgdG9rZW4gZm9yIEdOUyBzdGFrZWQgdGhyb3VnaCBgZ292L3N0YWtlcmAuCgojIyBPdmVydmlldwoKeEdOUyBpcyBhIEdSQzIwIHRva2VuIHRoYXQgbWlycm9ycyBHTlMgbG9ja2VkIGluIGBnb3Yvc3Rha2VyYC4gSXQgZXhpc3RzIHNvIHRoYXQKZ292ZXJuYW5jZSBhbmQgdGhlIGxhdW5jaHBhZCBjYW4gcmVhZCBvbmUgc3Rha2VkLUdOUyBiYWxhbmNlLCBhbmQgaXQgaXMgbWludGVkCmFuZCBidXJuZWQgb25seSBieSBgZ292L3N0YWtlcmAgYXMgZGVsZWdhdGlvbnMgYW5kIGxhdW5jaHBhZCBwcm9qZWN0IGRlcG9zaXRzCmNoYW5nZS4KCnhHTlMgZG9lcyBub3QgbWFpbnRhaW4gYSB2b3RpbmctcG93ZXIgbGVkZ2VyLiBBIGhvbGRlcidzIGJhbGFuY2UgaXMgdGhlCnN0YWtlZC1HTlMgcmVjZWlwdCBvZiB0aGUgKipkZWxlZ2F0b3IqKjsgdGhlIGRlbGVnYXRlZSBhdHRyaWJ1dGlvbiBhbmQgdGhlCnRpbWVzdGFtcGVkIGhpc3RvcnkgdGhhdCBnb3Zlcm5hbmNlIHJlYWRzIGZvciB2b3RlIHdlaWdodCBsaXZlIGluIGBnb3Yvc3Rha2VyYC4KU2VlIFtnb3Yvc3Rha2VyXSguLi9zdGFrZXIpIGFuZCBbZ292ZXJuYW5jZV0oLi4vZ292ZXJuYW5jZSkuCgojIyBDb25maWd1cmF0aW9uCgotICoqTmFtZSoqOiBYR05TCi0gKipTeW1ib2wqKjogeEdOUwotICoqRGVjaW1hbHMqKjogNiwgbWF0Y2hpbmcgR05TCi0gKipCYWNraW5nKio6IDE6MSB3aXRoIHRoZSBHTlMgbG9ja2VkIGluIGBnb3Yvc3Rha2VyYAotICoqVHJhbnNmZXJzKio6IG5vbmUuIFRoZSByZWFsbSBleHBvc2VzIG5vIGBUcmFuc2ZlcmAsIGBUcmFuc2ZlckZyb21gLAogIGBBcHByb3ZlYCwgb3IgYEFsbG93YW5jZWAgZW50cnkgcG9pbnQsIHNvIGEgYmFsYW5jZSBjYW4gY2hhbmdlIG9ubHkgdGhyb3VnaAogIGBNaW50YCBhbmQgYEJ1cm5gLgotICoqTWludC9idXJuIGF1dGhvcml0eSoqOiB0aGUgYGdvdl9zdGFrZXJgIHJvbGUgYWRkcmVzcyBvbmx5Ci0gKipUb2tlbiBwYXRoKio6IGBnbm8ubGFuZC9yL2dub3N3YXAvZ292L3hnbnNgCgojIyBDb3JlIEZ1bmN0aW9ucwoKIyMjIGBNaW50YAoKQ3JlZGl0cyB4R05TIHRvIGFuIGFkZHJlc3MuIE9ubHkgY2FsbGFibGUgYnkgdGhlIGdvdi9zdGFrZXIgY29udHJhY3QuCgotIFJldmVydHMgd2hpbGUgdGhlICoqeGducyoqIGhhbHQgc2NvcGUgaXMgYWN0aXZlCi0gUmV2ZXJ0cyBvbiBhbiBpbnZhbGlkIGFkZHJlc3MsIGEgbmVnYXRpdmUgYW1vdW50LCBvciBhIHRvdGFsLXN1cHBseSBvdmVyZmxvdwoKIyMjIGBCdXJuYAoKRGViaXRzIHhHTlMgZnJvbSBhbiBhZGRyZXNzLiBPbmx5IGNhbGxhYmxlIGJ5IHRoZSBnb3Yvc3Rha2VyIGNvbnRyYWN0LgoKLSBSZXZlcnRzIHdoaWxlIHRoZSAqKndpdGhkcmF3KiogaGFsdCBzY29wZSBpcyBhY3RpdmUsIGEgZGlmZmVyZW50IHNjb3BlIGZyb20KICBgTWludGAsIHNvIGlzc3VhbmNlIGFuZCByZWRlbXB0aW9uIGNhbiBiZSBoYWx0ZWQgaW5kZXBlbmRlbnRseQotIFJldmVydHMgb24gYW4gaW52YWxpZCBhZGRyZXNzLCBhIG5lZ2F0aXZlIGFtb3VudCwgb3IgYW4gaW5zdWZmaWNpZW50IGJhbGFuY2UKCiMjIyBgVG90YWxTdXBwbHlgCgpUb3RhbCB4R05TIGlzc3VlZC4gR292ZXJuYW5jZSByZWFkcyBpdCBhdCBwcm9wb3NhbCBjcmVhdGlvbiB0byBkZXJpdmUgdGhhdApwcm9wb3NhbCdzIHF1b3J1bSBhbW91bnQsIHNvIHRoZSBmaWd1cmUgaW5jbHVkZXMgbGF1bmNocGFkLWhlbGQgaXNzdWFuY2UuCgojIyMgYEJhbGFuY2VPZmAKCnhHTlMgYmFsYW5jZSBvZiBhbiBhZGRyZXNzLiBSZWFkIGJ5IGdvdmVybmFuY2UgZm9yIHRoZSBwcm9wb3NhbC1jcmVhdGlvbgp0aHJlc2hvbGQsIGFuZCBieSB0aGUgbGF1bmNocGFkIHdoZW4gYSBwcm9qZWN0IGNvbmRpdGlvbiBuYW1lcyB0aGUgeEdOUyB0b2tlbgpwYXRoLgoKIyMjIGBTdXBwbHlJbmZvYAoKUmV0dXJucyBgKHRvdGFsSXNzdWVkLCBpc3N1ZWRCeURlbGVnYXRlLCBpc3N1ZWRCeURlcG9zaXRHbnMsIGVycilgLgoKLSBgaXNzdWVkQnlEZXBvc2l0R25zYCBpcyB0aGUgYmFsYW5jZSBoZWxkIGJ5IHRoZSBsYXVuY2hwYWQgcm9sZSBhZGRyZXNzCi0gYGlzc3VlZEJ5RGVsZWdhdGVgIGlzIHRoZSByZW1haW5kZXIsIGB0b3RhbElzc3VlZCAtIGlzc3VlZEJ5RGVwb3NpdEduc2AKLSBgZXJyYCBpcyBub24tbmlsIHdoZW4gdGhlIGxhdW5jaHBhZCBhZGRyZXNzIGlzIG5vdCByZWdpc3RlcmVkIGluIGFjY2VzczsgdGhlCiAgdGhyZWUgYW1vdW50cyBhcmUgemVybyBpbiB0aGF0IGNhc2UKCiMjIyBgUmVuZGVyYAoKLSBgIiJgIHJlbmRlcnMgdGhlIHRva2VuIGhvbWUgdmlldwotIGBiYWxhbmNlLzxhZGRyZXNzPmAgcmVuZGVycyB0aGF0IGFkZHJlc3MncyBiYWxhbmNlCi0gQW55IG90aGVyIHBhdGggcmVuZGVycyBgNDA0YAoKIyMgU3VwcGx5IExpZmVjeWNsZQoKT25seSBgZ292L3N0YWtlcmAgbW92ZXMgeEdOUywgYW5kIGl0cyBtaW50L2J1cm4gcG9pbnRzIGFyZSBub3Qgc3ltbWV0cmljIHdpdGgKdGhlIGRlbGVnYXRpb24gY2FsbHM6Cgp8IGdvdi9zdGFrZXIgY2FsbCB8IHhHTlMgZWZmZWN0IHwKfC0tLXwtLS18CnwgYERlbGVnYXRlYCB8IG1pbnRzIHRoZSBkZWxlZ2F0ZWQgYW1vdW50IHRvIHRoZSAqKmRlbGVnYXRvcioqICh0aGUgY2FsbGVyKSwgbm90IHRvIHRoZSBkZWxlZ2F0ZWUgfAp8IGBSZWRlbGVnYXRlYCB8IG5vIG1pbnQgb3IgYnVybjsgb25seSB0aGUgZGVsZWdhdGVlIGF0dHJpYnV0aW9uIG1vdmVzIHwKfCBgVW5kZWxlZ2F0ZWAgfCBubyBidXJuOyB2b3RpbmcgcG93ZXIgaXMgcmVtb3ZlZCBpbW1lZGlhdGVseSB3aGlsZSB0aGUgeEdOUyBiYWxhbmNlIHN0YXlzIHwKfCBgQ29sbGVjdFVuZGVsZWdhdGVkR25zYCB8IGJ1cm5zIHRoZSBjb2xsZWN0ZWQgYW1vdW50IGZyb20gdGhlIGNhbGxlciBhZnRlciB0aGUgbG9ja3VwIHwKfCBgU2V0QW1vdW50QnlQcm9qZWN0V2FsbGV0YCB3aXRoIGBhZGQgPSB0cnVlYCB8IG1pbnRzIHRvIHRoZSBsYXVuY2hwYWQgcm9sZSBhZGRyZXNzIHwKfCBgU2V0QW1vdW50QnlQcm9qZWN0V2FsbGV0YCB3aXRoIGBhZGQgPSBmYWxzZWAgfCBidXJucyBmcm9tIHRoZSBsYXVuY2hwYWQgcm9sZSBhZGRyZXNzIHwKCkJlY2F1c2UgYFVuZGVsZWdhdGVgIGRvZXMgbm90IGJ1cm4sIGEgaG9sZGVyIGtlZXBzIHRoZSB4R05TIGJhbGFuY2UgZm9yIHRoZQpkdXJhdGlvbiBvZiB0aGUgdW5kZWxlZ2F0aW9uIGxvY2t1cCBldmVuIHRob3VnaCB0aGUgZGVsZWdhdGVkIHZvdGluZyBwb3dlciBpcwphbHJlYWR5IGdvbmUuCgojIyBIYWx0IFNjb3BlcwoKfCBGdW5jdGlvbiB8IEhhbHQgc2NvcGUgfAp8LS0tfC0tLXwKfCBgTWludGAgfCBgeGduc2AgfAp8IGBCdXJuYCB8IGB3aXRoZHJhd2AgfAp8IGBUb3RhbFN1cHBseWAsIGBCYWxhbmNlT2ZgLCBgU3VwcGx5SW5mb2AsIGBSZW5kZXJgIHwgbm9uZTsgcmVhZC1vbmx5IHwKCiMjIFVzYWdlCgpUaGVzZSBzbmlwcGV0cyBjYWxsIHRoZSB4R05TIHJlYWxtIGZyb20gYSByZWFsbSBmdW5jdGlvbiB3aXRoIGEgY3VycmVudCBgY3VyYAp0b2tlbi4gSW1wb3J0IHRoZSBwYWNrYWdlIGFuZCBxdWFsaWZ5IGl0cyBmdW5jdGlvbiBuYW1lcyBpbiBpbnRlZ3JhdGluZyBjb2RlLgoKYGBgZ28KLy8gUmVhZCBwYXRocyB0YWtlIG5vIHJlYWxtIHRva2VuCnN1cHBseSA6PSBUb3RhbFN1cHBseSgpCmJhbGFuY2UgOj0gQmFsYW5jZU9mKHZvdGVyQWRkcmVzcykKdG90YWxJc3N1ZWQsIGlzc3VlZEJ5RGVsZWdhdGUsIGlzc3VlZEJ5RGVwb3NpdEducywgZXJyIDo9IFN1cHBseUluZm8oKQoKLy8gV3JpdGUgcGF0aHMgYXJlIHJlamVjdGVkIGZvciBhbnkgY2FsbGVyIG90aGVyIHRoYW4gdGhlIGdvdi9zdGFrZXIgcmVhbG0KTWludChjcm9zcyhjdXIpLCBkZWxlZ2F0b3IsIDFfMDAwXzAwMF8wMDApCkJ1cm4oY3Jvc3MoY3VyKSwgZGVsZWdhdG9yLCAxXzAwMF8wMDBfMDAwKQpgYGAKCkludGVncmF0aW5nIHJlYWxtcyBzaG91bGQgZ28gdGhyb3VnaCBgZ292L3N0YWtlcmAgcmF0aGVyIHRoYW4gY2FsbGluZyB0aGlzIHJlYWxtCmRpcmVjdGx5LiBgRGVsZWdhdGVgIGFuZCBgQ29sbGVjdFVuZGVsZWdhdGVkR25zYCBrZWVwIHRoZSBHTlMgbGVkZ2VyLCB0aGUKZGVsZWdhdGlvbiBoaXN0b3J5LCBhbmQgdGhlIHhHTlMgc3VwcGx5IGNvbnNpc3RlbnQsIHdoaWxlIGEgZGlyZWN0IGBNaW50YCBvcgpgQnVybmAgaXMgcmVqZWN0ZWQgZm9yIGFueSBjYWxsZXIgb3RoZXIgdGhhbiBgZ292L3N0YWtlcmAuCgojIyBTZWN1cml0eQoKLSBgTWludGAgYW5kIGBCdXJuYCBhc3NlcnQgdGhlIGBnb3Zfc3Rha2VyYCByb2xlLCBzbyBubyB1c2VyIGFuZCBubyBvdGhlciByZWFsbQogIGNhbiBjaGFuZ2UgYSBiYWxhbmNlCi0gV2l0aG91dCB0cmFuc2ZlciBlbnRyeSBwb2ludHMsIHhHTlMgY2Fubm90IGJlIHRyYWRlZCwgbGVudCwgb3IgYm9ycm93ZWQgdG8KICBpbmZsYXRlIGEgZ292ZXJuYW5jZSByZWFkaW5nIHdpdGhpbiBhIHRyYW5zYWN0aW9uCi0gVGhlIHR3byB3cml0ZSBwYXRocyBzaXQgaW4gZGlmZmVyZW50IGhhbHQgc2NvcGVzOiBoYWx0aW5nIGB3aXRoZHJhd2Agc3RvcHMKICBidXJuaW5nLCBhbmQgdGhlcmVmb3JlIHVuZGVsZWdhdGVkLUdOUyBjb2xsZWN0aW9uLCB3aXRob3V0IHN0b3BwaW5nIGRlbGVnYXRpb24KLSBRdW9ydW0gaXMgZml4ZWQgZnJvbSBgVG90YWxTdXBwbHlgIGF0IHByb3Bvc2FsIGNyZWF0aW9uIGFuZCBpbmNsdWRlcwogIGxhdW5jaHBhZC1oZWxkIGlzc3VhbmNlOyBzZWUgW2dvdmVybmFuY2VdKC4uL2dvdmVybmFuY2UpIGZvciBob3cgdGhlIHN0b3JlZAogIHF1b3J1bSBhbW91bnQgaXMgYXBwbGllZAoavwMKB2RvYy5nbm8SswMvLyBQYWNrYWdlIHhnbnMgaW1wbGVtZW50cyB0aGUgR1JDMjAtY29tcGxpYW50IHhHTlMgdG9rZW4gdGhhdCByZXByZXNlbnRzCi8vIHN0YWtlZCBHTlMuIEl0IG1hbmFnZXMgYmFsYW5jZXMsIHRvdGFsIHN1cHBseSwgYW5kIHRoZSBnb3Yvc3Rha2VyLWF1dGhvcml6ZWQKLy8gbWludCBhbmQgYnVybiBvcGVyYXRpb25zIHVzZWQgYnkgZGVsZWdhdGlvbiBhbmQgbGF1bmNocGFkIGFjY291bnRpbmcuCi8vCi8vIHhHTlMgZG9lcyBub3QgbWFpbnRhaW4gYSBzZXBhcmF0ZSB2b3RpbmctcG93ZXIgbGVkZ2VyLiBHb3Zlcm5hbmNlIGFuZAovLyBnb3Yvc3Rha2VyIHJlYWQgeEdOUyBiYWxhbmNlcyBhbmQgc3VwcGx5LCB0aGVuIGFwcGx5IGRlbGVnYXRpb24gaGlzdG9yeSBhbmQKLy8gcHJvcG9zYWwgcnVsZXMgb3V0c2lkZSB0aGlzIHBhY2thZ2UuCnBhY2thZ2UgeGducwoaQgoLZ25vbW9kLnRvbWwSM21vZHVsZSA9ICJnbm8ubGFuZC9yL2dub3N3YXAvZ292L3hnbnMiCmdubyA9ICIwLjkiChrFGQoIeGducy5nbm8SuBlwYWNrYWdlIHhnbnMKCmltcG9ydCAoCgkiY2hhaW4iCgkiZXJyb3JzIgoJInN0cmluZ3MiCgoJImduby5sYW5kL3AvbnQvZ3JjMjAvdjAiCgkiZ25vLmxhbmQvcC9udC9vd25hYmxlL3YwIgoJImduby5sYW5kL3AvbnQvdWZtdC92MCIKCgkiZ25vLmxhbmQvci9nbm9zd2FwL2FjY2Vzcy92MSIKCSJnbm8ubGFuZC9yL2dub3N3YXAvaGFsdC92MSIKCglwcmJhYyAiZ25vLmxhbmQvcC9nbm9zd2FwL3JiYWMvdjEiCikKCmNvbnN0IHRva2VuSUQgPSAwCgp2YXIgKAoJYWRtaW4gPSBvd25hYmxlLk5ld1dpdGhBZGRyZXNzKGNoYWluLlBhY2thZ2VBZGRyZXNzKHByYmFjLlJPTEVfR09WX1NUQUtFUi5TdHJpbmcoKSkpCgoJdG9rZW4gICpncmMyMC5Ub2tlbgoJbGVkZ2VyICpncmMyMC5Qcml2YXRlTGVkZ2VyCikKCmZ1bmMgaW5pdChjdXIgcmVhbG0pIHsKCXRva2VuLCBsZWRnZXIgPSBncmMyMC5OZXdUb2tlbigiWEdOUyIsICJ4R05TIiwgNiwgdG9rZW5JRCwgY3VyKQp9CgovLyBUb3RhbFN1cHBseSByZXR1cm5zIHRoZSB0b3RhbCBzdXBwbHkgb2YgeEdOUyB0b2tlbnMuCi8vCi8vIFJldHVybnM6Ci8vICAgLSBzdXBwbHk6IHRvdGFsIHhHTlMgdG9rZW4gc3VwcGx5CmZ1bmMgVG90YWxTdXBwbHkoKSBpbnQ2NCB7CglyZXR1cm4gdG9rZW4uVG90YWxTdXBwbHkoKQp9CgovLyBCYWxhbmNlT2YgcmV0dXJucyB0b2tlbiBiYWxhbmNlIGZvciBhZGRyZXNzLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gb3duZXI6IGFkZHJlc3MgdG8gY2hlY2sgYmFsYW5jZSBmb3IKLy8KLy8gUmV0dXJuczoKLy8gICAtIGJhbGFuY2U6IHRva2VuIGJhbGFuY2UgYW1vdW50CmZ1bmMgQmFsYW5jZU9mKG93bmVyIGFkZHJlc3MpIGludDY0IHsKCXJldHVybiB0b2tlbi5CYWxhbmNlT2Yob3duZXIpCn0KCi8vIFJlbmRlciByZXR1cm5zIGEgZm9ybWF0dGVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0b2tlbiBzdGF0ZS4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICAtIHBhdGg6IHJlbmRlciBwYXRoIGZvciBzcGVjaWZpYyB2aWV3cwovLwovLyBSZXR1cm5zOgovLyAgIC0gb3V0cHV0OiBmb3JtYXR0ZWQgdG9rZW4gc3RhdGUgcmVwcmVzZW50YXRpb24KZnVuYyBSZW5kZXIocGF0aCBzdHJpbmcpIHN0cmluZyB7CglpZiBwYXRoID09ICIiIHsKCQlyZXR1cm4gdG9rZW4uUmVuZGVySG9tZSgpCgl9CgoJcGFydHMgOj0gc3RyaW5ncy5TcGxpdChwYXRoLCAiLyIpCglzd2l0Y2ggcGFydHNbMF0gewoJY2FzZSAiYmFsYW5jZSI6CgkJaWYgbGVuKHBhcnRzKSAhPSAyIHsKCQkJcmV0dXJuICI0MDRcbiIKCQl9CgkJYmFsYW5jZSA6PSB0b2tlbi5CYWxhbmNlT2YoYWRkcmVzcyhwYXJ0c1sxXSkpCgkJcmV0dXJuIHVmbXQuU3ByaW50ZigiJWRcbiIsIGJhbGFuY2UpCglkZWZhdWx0OgoJCXJldHVybiAiNDA0XG4iCgl9Cn0KCi8vIE1pbnQgbWludHMgdG9rZW5zIHRvIGFuIGFkZHJlc3MuCi8vCi8vIFBhcmFtZXRlcnM6Ci8vICAgLSBjdXI6IGN1cnJlbnQgcmVhbG0gY29udGV4dDsgY2FsbGVycyB1c2UgY3Jvc3MoY3VyKSB3aGVuIGNyb3NzaW5nIGludG8gdGhpcwovLyAgICAgcmVhbG0uCi8vICAgLSB0bzogcmVjaXBpZW50IGFkZHJlc3MgcmVjZWl2aW5nIHRoZSBuZXdseSBtaW50ZWQgdG9rZW5zLgovLyAgIC0gYW1vdW50OiBudW1iZXIgb2YgeEdOUyB0b2tlbiB1bml0cyB0byBtaW50LgovLwovLyBPbmx5IGNhbGxhYmxlIGJ5IGdvdmVybmFuY2Ugc3Rha2VyIGNvbnRyYWN0LgpmdW5jIE1pbnQoY3VyIHJlYWxtLCB0byBhZGRyZXNzLCBhbW91bnQgaW50NjQpIHsKCWhhbHQuQXNzZXJ0SXNOb3RIYWx0ZWRYR25zKCkKCgljYWxsZXIgOj0gY3VyLlByZXZpb3VzKCkuQWRkcmVzcygpCglhY2Nlc3MuQXNzZXJ0SXNHb3ZTdGFrZXIoY2FsbGVyKQoKCWNoZWNrRXJyKGxlZGdlci5NaW50KHRvLCBhbW91bnQpKQp9CgovLyBCdXJuIGJ1cm5zIHRva2VucyBmcm9tIGFuIGFkZHJlc3MuCi8vCi8vIFBhcmFtZXRlcnM6Ci8vICAgLSBjdXI6IGN1cnJlbnQgcmVhbG0gY29udGV4dDsgY2FsbGVycyB1c2UgY3Jvc3MoY3VyKSB3aGVuIGNyb3NzaW5nIGludG8gdGhpcwovLyAgICAgcmVhbG0uCi8vICAgLSBmcm9tOiBhZGRyZXNzIHdob3NlIHhHTlMgYmFsYW5jZSBpcyBidXJuZWQuCi8vICAgLSBhbW91bnQ6IG51bWJlciBvZiB4R05TIHRva2VuIHVuaXRzIHRvIGJ1cm4uCi8vCi8vIE9ubHkgY2FsbGFibGUgYnkgZ292ZXJuYW5jZSBzdGFrZXIgY29udHJhY3QuCmZ1bmMgQnVybihjdXIgcmVhbG0sIGZyb20gYWRkcmVzcywgYW1vdW50IGludDY0KSB7CgloYWx0LkFzc2VydElzTm90SGFsdGVkV2l0aGRyYXcoKQoKCWNhbGxlciA6PSBjdXIuUHJldmlvdXMoKS5BZGRyZXNzKCkKCWFjY2Vzcy5Bc3NlcnRJc0dvdlN0YWtlcihjYWxsZXIpCgoJY2hlY2tFcnIobGVkZ2VyLkJ1cm4oZnJvbSwgYW1vdW50KSkKfQoKLy8gU3VwcGx5SW5mbyByZXR1cm5zIHN1cHBseSBicmVha2Rvd24gaW5mb3JtYXRpb24uCi8vCi8vIFJldHVybnM6Ci8vICAgLSB0b3RhbElzc3VlZDogdG90YWwgeEdOUyB0b2tlbnMgaXNzdWVkCi8vICAgLSBpc3N1ZWRCeURlbGVnYXRlOiB0b2tlbnMgaXNzdWVkIHRocm91Z2ggZ292ZXJuYW5jZSBkZWxlZ2F0aW9uCi8vICAgLSBpc3N1ZWRCeURlcG9zaXRHbnM6IHRva2VucyBpc3N1ZWQgdGhyb3VnaCBsYXVuY2hwYWQgZGVwb3NpdAovLyAgIC0gZXJyOiBuaWwgd2hlbiB0aGUgbGF1bmNocGFkIGFkZHJlc3MgaXMgcmVnaXN0ZXJlZDsgYW4gZXJyb3Igd2hlbiBpdCBjYW5ub3QKLy8gICAgIGJlIGZvdW5kLgpmdW5jIFN1cHBseUluZm8oKSAodG90YWxJc3N1ZWQsIGlzc3VlZEJ5RGVsZWdhdGUsIGlzc3VlZEJ5RGVwb3NpdEducyBpbnQ2NCwgZXJyIGVycm9yKSB7CglsYXVuY2hwYWQsIG9rIDo9IGFjY2Vzcy5HZXRBZGRyZXNzKHByYmFjLlJPTEVfTEFVTkNIUEFELlN0cmluZygpKQoJaWYgIW9rIHsKCQlyZXR1cm4gMCwgMCwgMCwgZXJyb3JzLk5ldygibGF1bmNocGFkIGFkZHJlc3Mgbm90IGZvdW5kIikKCX0KCgl0b3RhbElzc3VlZCA9IHRva2VuLlRvdGFsU3VwcGx5KCkKCWlzc3VlZEJ5RGVwb3NpdEducyA9IHRva2VuLkJhbGFuY2VPZihsYXVuY2hwYWQpCglpc3N1ZWRCeURlbGVnYXRlID0gdG90YWxJc3N1ZWQgLSBpc3N1ZWRCeURlcG9zaXRHbnMKCglyZXR1cm4gdG90YWxJc3N1ZWQsIGlzc3VlZEJ5RGVsZWdhdGUsIGlzc3VlZEJ5RGVwb3NpdEducywgbmlsCn0KCmZ1bmMgY2hlY2tFcnIoZXJyIGVycm9yKSB7CglpZiBlcnIgIT0gbmlsIHsKCQlwYW5pYyhlcnIpCgl9Cn0KIiIKEy9nbm8uTWVtUGFja2FnZVR5cGUSCwoJTVBVc2VyQWxsEhEItOaRDBIKMTI3Mjl1Z25vdBqoAQo6ChMvdG0uUHViS2V5U2VjcDI1NmsxEiMKIQMEnNUEw+LSOqLPC53myjgfoun1lzihgX/ZUaUiNcK64RJACcGGsStj93J2AU7YQMQMDE0BEEmwCcyiebfANfg2TOQOqgOS+MF9OpqPjXy5WtxesvJeQjwHkN8XurNz1FtG/BooZzFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFsdXV4ZQ==